import { Observable } from 'rxjs';
import { AbsoluteRepoFile, RepoRev } from '.';
import * as GQL from '../backend/graphqlschema';
export declare const ECLONEINPROGESS = "ECLONEINPROGESS";
export interface CloneInProgressError extends Error {
    code: typeof ECLONEINPROGESS;
    progress?: string;
}
export declare const EREPONOTFOUND = "EREPONOTFOUND";
export declare const EREVNOTFOUND = "EREVNOTFOUND";
export declare const EREPOSEEOTHER = "ERREPOSEEOTHER";
export interface RepoSeeOtherError extends Error {
    code: typeof EREPOSEEOTHER;
    redirectURL: string;
}
/**
 * Fetch the repository.
 */
export declare const fetchRepository: (params: import(".").ParsedRepoURI, force?: boolean | undefined) => Observable<GQL.IRepository>;
export interface ResolvedRev {
    commitID: string;
    defaultBranch: string;
    /** The URL to the repository root tree at the revision. */
    rootTreeURL: string;
}
/**
 * When `rev` is undefined, the default branch is resolved.
 * @return Observable that emits the commit ID
 *         Errors with a `CloneInProgressError` if the repo is still being cloned.
 */
export declare const resolveRev: (params: import(".").ParsedRepoURI, force?: boolean | undefined) => Observable<ResolvedRev>;
interface FetchFileCtx {
    repoPath: string;
    commitID: string;
    filePath: string;
    disableTimeout?: boolean;
    isLightTheme: boolean;
}
/**
 * Produces a list like ['<tr>...</tr>', ...]
 */
export declare const fetchHighlightedFileLines: (params: FetchFileCtx, force?: boolean | undefined) => Observable<string[]>;
export declare const fetchFileExternalLinks: (params: RepoRev & {
    filePath: string;
}, force?: boolean | undefined) => Observable<GQL.IExternalLink[]>;
export declare const fetchTree: (params: AbsoluteRepoFile & {
    first?: number | undefined;
}, force?: boolean | undefined) => Observable<GQL.IGitTree>;
export declare const fetchTreeEntries: (params: AbsoluteRepoFile & {
    first?: number | undefined;
}, force?: boolean | undefined) => Observable<GQL.IGitTree>;
export {};
//# sourceMappingURL=backend.d.ts.map