import type { ProjectRepository, ProjectSourceControlConnection, SourceControlRepository, SourceControlSession, SourceControlStorageHandle } from '../storage/domains/source-control/base.js'; /** One repository of a factory environment, fully resolved: the link, its repository row and its connection. */ export interface EnvironmentRepository { link: ProjectRepository; repository: SourceControlRepository; connection: ProjectSourceControlConnection; } /** * The `inEnvironment` links of a factory in position order, resolved to their * repository and connection rows, for the integration the handle belongs to. * A link whose connection or repository row is missing (an uninstalled app, * a link left behind by a reinstall) is skipped with one warning, ids only. */ export declare function resolveEnvironmentRepositories(args: { sourceControl: SourceControlStorageHandle; orgId: string; factoryProjectId: string; }): Promise; /** * The repositories a session may target: the environment list plus, when the * session is filed under a link that is no longer in the environment (a work * item's repository toggled out after dispatch), that own link appended last. * A session can always target the repository it was filed under. */ export declare function resolveSessionRepositories(args: { sourceControl: SourceControlStorageHandle; session: Pick; }): Promise; export declare function findEnvironmentRepository(repositories: EnvironmentRepository[], slug: string): EnvironmentRepository | undefined; export declare function environmentSlugs(repositories: EnvironmentRepository[]): string[]; //# sourceMappingURL=environment-repositories.d.ts.map