/** Live repository settings surfaced in the console panel. */
export interface GithubRepoSettings {
    readonly allow_merge_commit: boolean;
    readonly allow_squash_merge: boolean;
    readonly allow_rebase_merge: boolean;
    readonly allow_auto_merge: boolean;
    readonly allow_update_branch: boolean;
    readonly delete_branch_on_merge: boolean;
    readonly merge_commit_title: string;
    readonly has_issues: boolean;
    readonly has_wiki: boolean;
    readonly secret_scanning: boolean;
    readonly default_branch: string;
}
/** One ruleset row for the panel. */
export interface GithubRulesetRow {
    readonly name: string;
    readonly appliesTo: string;
    readonly enforces: string;
    readonly active: boolean;
    /** Structured default-branch targeting retained beside display text. */
    readonly targetsDefaultBranch?: boolean;
    /** Structured pull-request enforcement retained beside display text. */
    readonly requiresPullRequest?: boolean;
    /** At least one required status-check context is configured. */
    readonly requiresStatusChecks?: boolean;
}
/** One label present on the remote repository. */
export interface GithubRemoteLabel {
    readonly name: string;
    readonly color: string;
}
/** Injectable collaborators used by the github-repo probe. */
export interface GithubRepoGhReads {
    readonly readSettings: (owner: string, repo: string, cwd: string, timeoutMs: number, signal: AbortSignal) => Promise<GithubRepoSettings>;
    readonly listRulesets: (owner: string, repo: string, cwd: string, timeoutMs: number, signal: AbortSignal) => Promise<readonly GithubRulesetRow[]>;
    readonly listLabels: (owner: string, repo: string, cwd: string, timeoutMs: number, signal: AbortSignal) => Promise<readonly GithubRemoteLabel[]>;
    readonly listSecretNames: (owner: string, repo: string, cwd: string, timeoutMs: number, signal: AbortSignal) => Promise<readonly string[]>;
}
/**
 * Run `gh` without a shell and return stdout.
 *
 * Exported so every `gh` read in the CLI goes through one shell-free call site.
 * A second one would mean a second place to get argument handling and the
 * command-from-PATH exemption right, and the gate report needs a branch-rules
 * read that belongs to no existing member of `GithubRepoGhReads`.
 * @param args - gh argv after the executable
 * @param cwd - Working directory
 * @param timeoutMs - Child-process timeout
 * @param signal - Probe cancellation signal
 * @returns Trimmed stdout
 */
export declare function runGh(args: readonly string[], cwd: string, timeoutMs: number, signal: AbortSignal): Promise<string>;
/** Default `gh` implementations used by `lisa ui`. */
export declare const defaultGithubRepoGhReads: GithubRepoGhReads;
//# sourceMappingURL=ui-github-repo-gh.d.ts.map