import type { IApplicationRepository } from '../../ports/output/repositories/application-repository.interface.js';
import type { IGitRemoteService } from '../../ports/output/services/git-remote.service.interface.js';
import type { IOperationLogService } from '../../ports/output/services/operation-log-service.interface.js';
export interface CreateGitRemoteInput {
    applicationId: string;
    /**
     * Optional GitHub org/user login to create the repo under. Omit (or pass
     * the user's own login) for the personal namespace.
     */
    ownerLogin?: string;
    /** Optional override of the slug. Falls back to Application.slug. */
    repoName?: string;
    /** Optional visibility. Defaults to 'private' so user code is never
     *  exposed to the open internet without an explicit opt-in. */
    visibility?: 'public' | 'private';
}
export interface CreateGitRemoteResult {
    remoteUrl: string;
}
export declare class CreateGitRemoteUseCase {
    private readonly applicationRepo;
    private readonly gitRemoteService;
    private readonly opLog;
    constructor(applicationRepo: IApplicationRepository, gitRemoteService: IGitRemoteService, opLog: IOperationLogService);
    execute(input: CreateGitRemoteInput | string): Promise<CreateGitRemoteResult>;
}
//# sourceMappingURL=create-git-remote.use-case.d.ts.map