export interface IVariation {
    type: "PlainText" | "SSML";
    value: string;
}
export interface IPrompt {
    id: string;
    variations: IVariation[];
}
export interface IDialogSlotPrompt {
    elicitation?: string;
    confirmation?: string;
}
export interface IDialogSlot {
    name: string;
    type: string;
    elicitationRequired: boolean;
    confirmationRequired: boolean;
    prompts?: IDialogSlotPrompt;
}
export declare type DelegationStrategy = "SKILL_RESPONSE" | "ALWAYS";
export interface IDialogIntent {
    name: string;
    delegationStrategy?: DelegationStrategy;
    confirmationRequired: boolean;
    slots: IDialogSlot[];
    prompts?: {
        confirmation?: string;
    };
}
export interface IInteractionModelSlot {
    name: string;
    type: string;
    samples: string[];
}
export interface IDialog {
    intents: IDialogIntent[];
    delegationStrategy: DelegationStrategy;
}
export interface IInteractionModelIntent {
    name: string;
    samples: string[];
    slots: IInteractionModelSlot[];
}
export interface IInteractionModelTypeValue {
    name: {
        value: string;
        synonyms: string[];
    };
}
export interface IInteractionModelType {
    name: string;
    values: IInteractionModelTypeValue[];
}
export interface IInteractionModel {
    interactionModel: {
        languageModel: {
            invocationName: string;
            intents: IInteractionModelIntent[];
            types: IInteractionModelType[];
        };
        dialog?: IDialog;
        prompts?: IPrompt[];
    };
}
