import { type GitIdentity } from "./git-config.js";
export type StepStatus = "done" | "skipped" | "failed" | "action-required" | "would-change";
export interface StepResult {
    id: string;
    title: string;
    status: StepStatus;
    detail?: string;
}
export interface DcoAgentInfo {
    did: string;
    name: string;
    slug: string;
    url: string;
    email: string;
}
export interface DcoSetupOptions {
    cwd?: string;
    /** Write git config globally instead of repo-local. */
    global?: boolean;
    /** Report every change without writing anything. */
    dryRun?: boolean;
    skipGithub?: boolean;
    skipClaude?: boolean;
    /** Overwrite conflicting pre-existing signing configuration. */
    force?: boolean;
    /** Allow interactive prompts (agent name fallback, scope refresh). */
    interactive?: boolean;
}
export interface DcoSetupResult {
    ok: boolean;
    actionRequired: boolean;
    steps: StepResult[];
    agent?: DcoAgentInfo;
    human?: GitIdentity;
    privateKeyPath?: string;
    fingerprint?: string;
    /** Set when persisting resolved metadata to .mcpi/agent.json failed (non-fatal). */
    metadataPersistWarning?: string;
}
/**
 * Orchestrates the full DCO/attribution setup. Steps run in order; the three
 * foundation steps (preflight, identities, key material) abort the run when
 * they fail, everything after degrades independently so one broken layer
 * never blocks the others.
 */
export declare function runDcoSetup(options?: DcoSetupOptions): Promise<DcoSetupResult>;
//# sourceMappingURL=setup.d.ts.map