import type { GitWorkspaceConfig, FolderEntry, ReadResult, VersionInfo, WriteQueryOptions } from "../types";
import type { WorkspaceBackend } from "./WorkspaceBackend";
export interface GitProviderClient {
    validateAccess(config: GitWorkspaceConfig): Promise<void>;
    listFolder(config: GitWorkspaceConfig, folderId?: string): Promise<FolderEntry[]>;
    readQuery(config: GitWorkspaceConfig, queryId: string): Promise<ReadResult>;
    writeQuery(config: GitWorkspaceConfig, queryId: string, queryText: string, options?: WriteQueryOptions): Promise<void>;
    listVersions(config: GitWorkspaceConfig, queryId: string): Promise<VersionInfo[]>;
    readVersion(config: GitWorkspaceConfig, queryId: string, versionId: string): Promise<ReadResult>;
    deleteQuery(config: GitWorkspaceConfig, queryId: string): Promise<void>;
}
export default class GitWorkspaceBackend implements WorkspaceBackend {
    private config;
    private client?;
    readonly type: "git";
    constructor(config: GitWorkspaceConfig, client?: GitProviderClient);
    private missingClientError;
    validateAccess(): Promise<void>;
    listFolder(_folderId?: string): Promise<FolderEntry[]>;
    readQuery(_queryId: string): Promise<ReadResult>;
    writeQuery(_queryId: string, _queryText: string, _options?: WriteQueryOptions): Promise<void>;
    listVersions(_queryId: string): Promise<VersionInfo[]>;
    readVersion(_queryId: string, _versionId: string): Promise<ReadResult>;
    deleteQuery(_queryId: string): Promise<void>;
    renameQuery(queryId: string, newLabel: string): Promise<void>;
}
