import { type CommandContext, type GlobalOptions } from '../../app/command-context.js';
import { type CodexRoleStray } from '../shared/codex-strays.js';
import { type MultiSelectChoice, type PromptContext } from '../shared/shared.prompts.js';
import { type SyncConfig } from '../../config/index.js';
import { type UserConfig } from '../../config/oat-config.js';
import { type CopyTransform, type DriftReport } from '../../drift/index.js';
import { type CanonicalEntry } from '../../engine/index.js';
import type { Manifest } from '../../manifest/index.js';
import { type CodexExtensionPlan } from '../../providers/codex/codec/sync-extension.js';
import { type PathMapping, type ProviderAdapter } from '../../providers/shared/index.js';
import { type ConcreteScope, type Scope } from '../../shared/types.js';
import { Command } from 'commander';
interface StatusDependencies {
    buildCommandContext: (options: GlobalOptions) => CommandContext;
    resolveScopeRoot: (scope: ConcreteScope, context: CommandContext) => Promise<string>;
    loadManifest: (manifestPath: string) => Promise<Manifest>;
    loadSyncConfig: (configPath: string) => Promise<SyncConfig>;
    readUserConfig: (userConfigDir: string) => Promise<UserConfig>;
    saveManifest: (manifestPath: string, manifest: Manifest) => Promise<void>;
    scanCanonical: (scopeRoot: string, scope: ConcreteScope) => Promise<CanonicalEntry[]>;
    scanBundledManagedCodexAgents: () => Promise<CanonicalEntry[]>;
    getAdapters: () => ProviderAdapter[];
    getActiveAdapters: (adapters: ProviderAdapter[], scopeRoot: string) => Promise<ProviderAdapter[]>;
    getSyncMappings: (adapter: ProviderAdapter, scope: Scope) => PathMapping[];
    detectDrift: (entry: Manifest['entries'][number], scopeRoot: string, copyTransform?: CopyTransform) => Promise<DriftReport>;
    detectStrays: (provider: string, providerDir: string, manifest: Manifest, canonicalEntries: CanonicalEntry[], mapping?: Pick<PathMapping, 'contentType' | 'providerExtension'>) => Promise<DriftReport[]>;
    detectCodexRoleStrays: (scopeRoot: string, canonicalEntries: CanonicalEntry[], managedRoleNames?: Set<string>) => Promise<CodexRoleStray[]>;
    computeCodexProjectExtensionPlan: (scopeRoot: string, canonicalEntries: CanonicalEntry[], allowedCanonicalPaths?: string[], options?: {
        userConfigDir?: string;
        env?: NodeJS.ProcessEnv;
    }) => Promise<CodexExtensionPlan>;
    applyCodexProjectExtensionPlan: (scopeRoot: string, plan: CodexExtensionPlan) => Promise<unknown>;
    selectManyWithAbort: <T extends string>(message: string, choices: MultiSelectChoice<T>[], ctx: PromptContext) => Promise<T[] | null>;
    confirmAction: (message: string, ctx: PromptContext) => Promise<boolean>;
    adoptStray: (scopeRoot: string, stray: StatusStrayCandidate, manifest: Manifest, options?: {
        replaceCanonical?: boolean;
    }) => Promise<Manifest>;
    formatStatusTable: (reports: DriftReport[]) => string;
}
interface StatusStrayCandidate {
    provider: string;
    report: DriftReport;
    mapping: PathMapping;
    adoption?: {
        kind: 'codex_role';
        roleName: string;
        description?: string;
    };
}
export declare function createStatusCommand(overrides?: Partial<StatusDependencies>): Command;
export {};
//# sourceMappingURL=index.d.ts.map