export type FederationRepoVisibility = "private" | "public"; export interface FederationPushTarget { url: string; refspec: string; } export type FederationBeforePush = (push: () => Promise) => Promise; export interface FederationGhClient { repoExists(handle: string, repoName: string): Promise; createRepo(handle: string, repoName: string, visibility: FederationRepoVisibility, description: string): Promise; setRepoTopics(handle: string, repoName: string, topics: readonly string[]): Promise; initLocalFromFresh(handle: string, repoName: string, localDir: string): Promise; initLocalNoRemote(handle: string, localDir: string): Promise; cloneExisting(handle: string, repoName: string, localDir: string): Promise; commitAndOptionallyPush(localDir: string, message: string, push: boolean, pushTarget?: FederationPushTarget, beforePush?: FederationBeforePush): Promise; fetchRemotePodManifest?(handle: string, repoName: string): Promise; remoteHasCommits?(handle: string, repoName: string): Promise; } export declare function cmdQuote(arg: string): string; export declare function buildShellCommand(exe: string, args: readonly string[]): string; export interface SpawnInvocation { command: string; args: readonly string[]; shell: boolean; } export declare function resolveSpawnInvocation(exe: string, args: readonly string[]): SpawnInvocation; export declare function inspectGhError(err: unknown): { is404: boolean; summary: string; }; export declare function isEmptyRepoError(err: unknown): boolean; export declare const realFederationGhClient: FederationGhClient; //# sourceMappingURL=gh-federation.d.ts.map