export interface Message {
    /** The text of the message. */
    content?: string;
    /** Indicates the type of response. */
    contentType: 'CustomPayload' | 'ImageResponseCard' | 'PlainText' | 'SSML';
    imageResponseCard?: any;
}
export interface DialogAction {
    /** The next action that the bot should take in its interaction with the user. The following values are possible: Close – Indicates that there will not be a response from the user. For example, the statem */
    type: 'Close' | 'ConfirmIntent' | 'Delegate' | 'ElicitIntent' | 'ElicitSlot' | 'None';
    /** The name of the slot that should be elicited from the user. */
    slotToElicit?: string;
    /** Configures the slot to use spell-by-letter or spell-by-word style. When you use a style on a slot, users can spell out their input to make it clear to your bot. Spell by letter - "b" "o" "b" Spell by  */
    slotElicitationStyle?: 'Default' | 'SpellByLetter' | 'SpellByWord';
    /** The name of the constituent sub slot of the composite slot specified in slotToElicit that should be elicited from the user. */
    subSlotToElicit?: any;
}
export interface Intent {
    /** The name of the intent. */
    name: string;
    /** A map of all of the slots for the intent. The name of the slot maps to the value of the slot. If a slot has not been filled, the value is null. */
    slots?: Record<string, any>;
    /** Indicates the fulfillment state for the intent. The meanings of each value are as follows: Failed – The bot failed to fulfill the intent. Fulfilled – The bot has completed fulfillment of the intent. F */
    state?: 'Failed' | 'Fulfilled' | 'InProgress' | 'ReadyForFulfillment' | 'Waiting' | 'FulfillmentInProgress';
    /** Indicates whether the intent has been Confirmed, Denied, or None if the confirmation stage has not yet been reached. */
    confirmationState?: 'Confirmed' | 'Denied' | 'None';
}
export interface RuntimeHints {
    /** A list of the slots in the intent that should have runtime hints added, and the phrases that should be added for each slot. The first level of the slotHints map is the name of the intent. The second l */
    slotHints?: Record<string, any>;
}
export interface SessionState {
    /** The next step that Amazon Lex V2 should take in the conversation with a user. */
    dialogAction?: DialogAction;
    /** The active intent that Amazon Lex V2 is processing. */
    intent?: Intent;
    /** One or more contexts that indicate to Amazon Lex V2 the context of a request. When a context is active, Amazon Lex V2 considers intents with the matching context as a trigger as the next intent in a s */
    activeContexts?: any[];
    /** Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application. */
    sessionAttributes?: Record<string, string>;
    /** A unique identifier for a specific request. */
    originatingRequestId?: string;
    /** Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 uses the hints to help determine the correct value of a slot. */
    runtimeHints?: RuntimeHints;
}
export interface ConfigurationEvent {
    /** Request-specific information passed between the client application and Amazon Lex V2. The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes for prefix x-amz- */
    requestAttributes?: Record<string, any>;
    /** The message that Amazon Lex V2 returns in the response can be either text or speech based on the responseContentType value. If the value is text/plain;charset=utf-8, Amazon Lex V2 returns text in the  */
    responseContentType: string;
    sessionState?: any;
    /** A list of messages to send to the user. If you set the welcomeMessage field, you must also set the DialogAction structure's type field. */
    welcomeMessages?: any[];
    /** Determines whether Amazon Lex V2 should send audio responses to the client application. Set this field to false when the client is operating in a playback mode where audio responses are played to the  */
    disablePlayback?: boolean;
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface AudioInputEvent {
    /** An encoded stream of audio. */
    audioChunk?: string;
    /** The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit mono-channel little-endian format. The value of the field should be: audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-cou */
    contentType: string;
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface DTMFInputEvent {
    /** The DTMF character that the user pressed. The allowed characters are A - D, 0 - 9, # and *. */
    inputCharacter: string;
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface TextInputEvent {
    /** The text from the user. Amazon Lex V2 processes this as a complete statement. */
    text: string;
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface PlaybackCompletionEvent {
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface DisconnectionEvent {
    /** A unique identifier that your application assigns to the event. You can use this to identify events in logs. */
    eventId?: string;
    /** A timestamp set by the client of the date and time that the event was sent to Amazon Lex V2. */
    clientTimestampMillis?: number;
}
export interface DeleteSessionInput {
    /** The alias identifier in use for the bot that contains the session data. */
    botAliasId: string;
    /** The identifier of the bot that contains the session data. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** The identifier of the session to delete. */
    sessionId: string;
}
export interface GetSessionInput {
    /** The alias identifier in use for the bot that contains the session data. */
    botAliasId: string;
    /** The identifier of the bot that contains the session data. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** The identifier of the session to return. */
    sessionId: string;
}
export interface PutSessionInput {
    /** The alias identifier of the bot that receives the session data. */
    botAliasId: string;
    /** The identifier of the bot that receives the session data. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** The identifier of the session that receives the session data. */
    sessionId: string;
    /** Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 sho */
    sessionState: SessionState;
    /** A list of messages to send to the user. Messages are sent in the order that they are defined in the list. */
    messages?: Message[];
    /** Request-specific information passed between Amazon Lex V2 and the client application. The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x */
    requestAttributes?: Record<string, string>;
    /** The message that Amazon Lex V2 returns in the response can be either text or speech depending on the value of this parameter. If the value is text/plain; charset=utf-8, Amazon Lex V2 returns text in t */
    responseContentType?: string;
}
export interface RecognizeTextInput {
    /** The alias identifier in use for the bot that processes the request. */
    botAliasId: string;
    /** The identifier of the bot that processes the request. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** The identifier of the user session that is having the conversation. */
    sessionId: string;
    /** The text that the user entered. Amazon Lex V2 interprets this text. */
    text: string;
    /** Request-specific information passed between the client application and Amazon Lex V2 The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x- */
    requestAttributes?: Record<string, string>;
    /** The current state of the dialog between the user and the bot. */
    sessionState?: SessionState;
}
export interface RecognizeUtteranceInput {
    /** The alias identifier in use for the bot that should receive the request. */
    botAliasId: string;
    /** The identifier of the bot that should receive the request. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes: PCM format, audio data must be in little-endian byte order. audio/l16; rate= */
    requestContentType: string;
    /** The identifier of the session in use. */
    sessionId: string;
    /** User input in PCM or Opus audio format or text format as described in the requestContentType parameter. */
    inputStream?: string;
    /** Request-specific information passed between the client application and Amazon Lex V2 The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes for prefix x-amz-l */
    requestAttributes?: string;
    /** The message that Amazon Lex V2 returns in the response can be either text or speech based on the responseContentType value. If the value is text/plain;charset=utf-8, Amazon Lex V2 returns text in the  */
    responseContentType?: string;
    /** Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 sho */
    sessionState?: string;
}
export interface StartConversationInput {
    /** The alias identifier in use for the bot that processes the request. */
    botAliasId: string;
    /** The identifier of the bot to process the request. */
    botId: string;
    /** The locale where the session is in use. */
    localeId: string;
    /** Represents the stream of events to Amazon Lex V2 from your application. The events are encoded as HTTP/2 data frames. */
    requestEventStream: any;
    /** The identifier of the user session that is having the conversation. */
    sessionId: string;
    /** The conversation type that you are using the Amazon Lex V2. If the conversation mode is AUDIO you can send both audio and DTMF information. If the mode is TEXT you can only send text. */
    conversationMode?: 'AUDIO' | 'TEXT';
}
/** Lex Runtime V2 service binding for Step Functions SDK integrations. */
export declare class LexRuntimeV2 {
    constructor();
    deleteSession<T>(params: DeleteSessionInput): Promise<T>;
    getSession<T>(params: GetSessionInput): Promise<T>;
    putSession<T>(params: PutSessionInput): Promise<T>;
    recognizeText<T>(params: RecognizeTextInput): Promise<T>;
    recognizeUtterance<T>(params: RecognizeUtteranceInput): Promise<T>;
    startConversation<T>(params: StartConversationInput): Promise<T>;
}
//# sourceMappingURL=LexRuntimeV2.d.ts.map