import { type SplitChildInput, type SplitPayload, type SplitPlanDocument } from '../../projects/split/child-plan.js';
import { type Signal } from '../../projects/split/signals.js';
export type TranscriptSpeaker = 'assistant' | 'user';
export interface TranscriptTurn {
    speaker: TranscriptSpeaker;
    text: string;
}
export type StubbedUserChoice = 'broad-first' | 'children-known' | 'decompose-children' | 'inline-only' | 'keep-one-project' | 'promote-n-projects' | 'split-now';
export interface StubbedQuestion {
    id: string;
    prompt: string;
    options: string[];
    response: StubbedUserChoice;
}
export interface TranscriptFixture {
    transcript: TranscriptTurn[];
    parentSlug: string;
    children: SplitChildInput[];
    discoveryPath?: string;
    inheritedContext?: string;
    integrationSketch?: string;
}
export declare const SPLIT_HANDOFF_TARGET: {
    readonly skill: "oat-project-split";
    readonly hookCreatesProjects: false;
    readonly responsibilities: readonly ["normalize-split-plan", "write-coordination-parent", "scaffold-children", "activate-initial-child"];
};
export declare function inferSplitSignals(transcript: TranscriptTurn[]): Signal[];
export declare function runDiscoverDetectionFixture(fixture: TranscriptFixture, responses: Record<string, StubbedUserChoice>): {
    asked: StubbedQuestion[];
    confidence: 'below' | 'high' | 'soft';
    decision?: StubbedUserChoice;
    document?: SplitPlanDocument;
    payload?: SplitPayload;
    triggered: boolean;
};
export declare function runDeclaredBrainstormFixture(fixture: TranscriptFixture, responses: Record<string, StubbedUserChoice>): {
    asked: StubbedQuestion[];
    document?: SplitPlanDocument;
    handoffTarget: typeof SPLIT_HANDOFF_TARGET;
    payload?: SplitPayload;
};
export declare function runBrainstormPickerFixture(fixture: TranscriptFixture, responses: Record<string, StubbedUserChoice>): {
    asked: StubbedQuestion[];
    document?: SplitPlanDocument;
    handoffTarget: typeof SPLIT_HANDOFF_TARGET;
    options: string[];
    payload?: SplitPayload;
};
//# sourceMappingURL=split-flow-fixtures.d.ts.map