import type { ManualRepositoryAttachResult } from "../components/manual-repository-editor.js"; import type { RepoDraft } from "./session-tools.js"; import type { GitHubRepository, PersonalGitHubRepositoryCatalogItem, VerifyPublicGitHubRepositoryRefRequest, VerifyPublicGitHubRepositoryRefResponse } from "../types.js"; export declare const ANONYMOUS_REPOSITORY_WARNING = "Opengeni will clone this repository anonymously. Make sure it is publicly readable."; type ManualRepositoryTarget = { kind: "workspace_github"; repository: GitHubRepository; ref: string; } | { kind: "personal_github"; repository: PersonalGitHubRepositoryCatalogItem; ref: string; } | { kind: "public_github"; request: VerifyPublicGitHubRepositoryRefRequest; } | { kind: "anonymous_https"; url: string; ref: string; }; export declare function attachedManualRepositoryCount(repositories: RepoDraft[]): number; export declare function classifyManualRepository(input: { repository: RepoDraft; workspaceRepositories: GitHubRepository[]; personalRepositories: PersonalGitHubRepositoryCatalogItem[]; }): ManualRepositoryTarget; export declare function attachManualRepository(input: { repository: RepoDraft; workspaceRepositories: GitHubRepository[]; personalRepositories: PersonalGitHubRepositoryCatalogItem[]; selectWorkspaceRepository: (repository: GitHubRepository, ref: string) => Promise | void; selectPersonalRepository: (repository: PersonalGitHubRepositoryCatalogItem, ref: string) => Promise | void; verifyPublicGitHubRepository: (request: VerifyPublicGitHubRepositoryRefRequest) => Promise; attach: (repository: RepoDraft) => void; remove: (id: number) => void; }): Promise; export {};