/** * Abstraction for a single repository. */ export interface Repository { url: string; name: string; owner: string; description?: string; file(filename: string): Promise; } /** * Abstraction for a single repository file. */ export interface RepositoryFile { /** * The filepath of the data. */ path: string; /** * The textual contents of the file. */ text(): Promise; } /** * One integration that supports discovery of repositories. */ export interface Provider { name(): string; discover(url: string): Promise; }