export type StateTransition = {
    from: string;
    event: string;
    to: string;
};
export type FieldSensitivity = "non-sensitive" | "sensitive";
export type ConfirmedTransition = "consume" | "clear";
export type FormField = {
    fieldId: string;
    enteredValue: unknown;
    sensitivity: FieldSensitivity;
    confirmedTransition?: ConfirmedTransition;
};
export type SubmissionOutcome = "success" | "failed" | "rejected";
export type ObservedFieldValue = {
    fieldId: string;
    value: unknown;
};
export type FormSubmissionScenario = {
    scenarioId: string;
    kind: "form-submission";
    submissionOutcome: SubmissionOutcome;
    fields: FormField[];
    observedAfterSubmission: ObservedFieldValue[];
    stateTrace?: StateTransition[];
};
export type InteractionOutcome = "completed" | "canceled" | "prevented";
export type SideEffectKind = "navigation" | "progress" | "mutation" | "analytics" | "success";
export type SideEffectScope = "parent" | "derived" | "nested";
export type InteractionSideEffect = {
    effectId: string;
    kind: SideEffectKind;
    scope: SideEffectScope;
    tiedToDefaultAction: boolean;
    emitted: boolean;
};
export type CanceledInteractionScenario = {
    scenarioId: string;
    kind: "canceled-interaction";
    parentState: string;
    interactionOutcome: InteractionOutcome;
    defaultActionId: string;
    sideEffects: InteractionSideEffect[];
    stateTrace?: StateTransition[];
};
export type ContinuityScenario = FormSubmissionScenario | CanceledInteractionScenario;
export type ContinuityFixture = {
    fixtureId: string;
    continuityVersion: string;
    scenarios: ContinuityScenario[];
    intentionalException?: {
        rules: string[];
        reason: string;
    };
};
//# sourceMappingURL=types.d.ts.map