import { SupervisorAutonomy } from '../../../../../packages/core/src/domain/generated/output.js';
import type { SupervisorPolicy } from '../../../../../packages/core/src/domain/generated/output.js';
declare const GATE_KEYS: readonly ["prd", "plan", "merge"];
type GateKey = (typeof GATE_KEYS)[number];
export interface SupervisorConfigFormProps {
    scopeType: string;
    scopeId?: string;
    featureId?: string;
    /** When `null`, the form starts blank (no policy configured yet). */
    initialPolicy: SupervisorPolicy | null;
    /** Optional override for the submit handler — used by tests/Storybook. */
    onSubmitOverride?: (input: SubmitInput) => Promise<SubmitResult>;
    /** Override loading state (Storybook). */
    forceState?: 'default' | 'loading' | 'error';
}
interface SubmitInput {
    scopeType: string;
    scopeId?: string;
    featureId?: string;
    autonomyLevel: SupervisorAutonomy;
    modelId?: string;
    promptVersion?: string;
    gateAuthority?: Partial<Record<GateKey, SupervisorAutonomy>>;
}
interface SubmitResult {
    ok: boolean;
    error?: string;
}
export declare function SupervisorConfigForm({ scopeType, scopeId, featureId, initialPolicy, onSubmitOverride, forceState, }: SupervisorConfigFormProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=supervisor-config-form.d.ts.map