export interface ActiveContext {
    /** The name of the context. */
    name: string;
    /** The length of time or number of turns that a context remains active. */
    timeToLive: any;
    /** State variables for the current context. You can use these values as default values for slots in subsequent events. */
    parameters: Record<string, any>;
}
export interface DialogAction {
    /** The next action that the bot should take in its interaction with the user. The possible values are: ConfirmIntent - The next action is asking the user if the intent is complete and ready to be fulfill */
    type: 'ElicitIntent' | 'ConfirmIntent' | 'ElicitSlot' | 'Close' | 'Delegate';
    /** The name of the intent. */
    intentName?: string;
    /** Map of the slots that have been gathered and their values. */
    slots?: Record<string, string>;
    /** The name of the slot that should be elicited from the user. */
    slotToElicit?: string;
    /** The fulfillment state of the intent. The possible values are: Failed - The Lambda function associated with the intent failed to fulfill the intent. Fulfilled - The intent has fulfilled by the Lambda f */
    fulfillmentState?: 'Fulfilled' | 'Failed' | 'ReadyForFulfillment';
    /** The message that should be shown to the user. If you don't specify a message, Amazon Lex will use the message configured for the intent. */
    message?: string;
    /** PlainText - The message contains plain UTF-8 text. CustomPayload - The message is a custom format for the client. SSML - The message contains text formatted for voice output. Composite - The message c */
    messageFormat?: 'PlainText' | 'CustomPayload' | 'SSML' | 'Composite';
}
export interface IntentSummary {
    /** The name of the intent. */
    intentName?: string;
    /** A user-defined label that identifies a particular intent. You can use this label to return to a previous intent. Use the checkpointLabelFilter parameter of the GetSessionRequest operation to filter th */
    checkpointLabel?: string;
    /** Map of the slots that have been gathered and their values. */
    slots?: Record<string, any>;
    /** The status of the intent after the user responds to the confirmation prompt. If the user confirms the intent, Amazon Lex sets this field to Confirmed. If the user denies the intent, Amazon Lex sets th */
    confirmationStatus?: 'None' | 'Confirmed' | 'Denied';
    /** The next action that the bot should take in its interaction with the user. The possible values are: ConfirmIntent - The next action is asking the user if the intent is complete and ready to be fulfill */
    dialogActionType: 'ElicitIntent' | 'ConfirmIntent' | 'ElicitSlot' | 'Close' | 'Delegate';
    /** The fulfillment state of the intent. The possible values are: Failed - The Lambda function associated with the intent failed to fulfill the intent. Fulfilled - The intent has fulfilled by the Lambda f */
    fulfillmentState?: 'Fulfilled' | 'Failed' | 'ReadyForFulfillment';
    /** The next slot to elicit from the user. If there is not slot to elicit, the field is blank. */
    slotToElicit?: string;
}
export interface DeleteSessionInput {
    /** The alias in use for the bot that contains the session data. */
    botAlias: string;
    /** The name of the bot that contains the session data. */
    botName: string;
    /** The identifier of the user associated with the session data. */
    userId: string;
}
export interface GetSessionInput {
    /** The alias in use for the bot that contains the session data. */
    botAlias: string;
    /** The name of the bot that contains the session data. */
    botName: string;
    /** The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. */
    userId: string;
    /** A string used to filter the intents returned in the recentIntentSummaryView structure. When you specify a filter, only intents with their checkpointLabel field set to that string are returned. */
    checkpointLabelFilter?: string;
}
export interface PostContentInput {
    /** Alias of the Amazon Lex bot. */
    botAlias: string;
    /** Name of the Amazon Lex bot. */
    botName: string;
    /** You pass this value as the Content-Type HTTP header. Indicates the audio format or text. The header value must start with one of the following prefixes: PCM format, audio data must be in little-endian */
    contentType: string;
    /** User input in PCM or Opus audio format or text format as described in the Content-Type HTTP header. You can stream audio data to Amazon Lex or you can create a local buffer that captures all of the au */
    inputStream: string;
    /** The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field. To decide the user ID to use for yo */
    userId: string;
    /** You pass this value as the Accept HTTP header. The message Amazon Lex returns in the response can be either text or speech based on the Accept HTTP header value in the request. If the value is text/pl */
    accept?: string;
    /** A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon L */
    activeContexts?: string;
    /** You pass this value as the x-amz-lex-request-attributes HTTP header. Request-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 enc */
    requestAttributes?: string;
    /** You pass this value as the x-amz-lex-session-attributes HTTP header. Application-specific information passed between Amazon Lex and a client application. The value must be a JSON serialized and base64 */
    sessionAttributes?: string;
}
export interface PostTextInput {
    /** The alias of the Amazon Lex bot. */
    botAlias: string;
    /** The name of the Amazon Lex bot. */
    botName: string;
    /** The text that the user entered (Amazon Lex interprets this text). */
    inputText: string;
    /** The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. At runtime, each request must contain the userID field. To decide the user ID to use for yo */
    userId: string;
    /** A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon L */
    activeContexts?: ActiveContext[];
    /** Request-specific information passed between Amazon Lex and a client application. The namespace x-amz-lex: is reserved for special attributes. Don't create any request attributes with the prefix x-amz- */
    requestAttributes?: Record<string, string>;
    /** Application-specific information passed between Amazon Lex and a client application. For more information, see Setting Session Attributes. */
    sessionAttributes?: Record<string, string>;
}
export interface PutSessionInput {
    /** The alias in use for the bot that contains the session data. */
    botAlias: string;
    /** The name of the bot that contains the session data. */
    botName: string;
    /** The ID of the client application user. Amazon Lex uses this to identify a user's conversation with your bot. */
    userId: string;
    /** The message that Amazon Lex returns in the response can be either text or speech based depending on the value of this field. If the value is text/plain; charset=utf-8, Amazon Lex returns text in the r */
    accept?: string;
    /** A list of contexts active for the request. A context can be activated when a previous intent is fulfilled, or by including the context in the request, If you don't specify a list of contexts, Amazon L */
    activeContexts?: ActiveContext[];
    /** Sets the next action that the bot should take to fulfill the conversation. */
    dialogAction?: DialogAction;
    /** A summary of the recent intents for the bot. You can use the intent summary view to set a checkpoint label on an intent and modify attributes of intents. You can also use it to remove or add intent su */
    recentIntentSummaryView?: IntentSummary[];
    /** Map of key/value pairs representing the session-specific context information. It contains application information passed between Amazon Lex and a client application. */
    sessionAttributes?: Record<string, string>;
}
/** Lex Runtime Service service binding for Step Functions SDK integrations. */
export declare class LexRuntimeService {
    constructor();
    deleteSession<T>(params: DeleteSessionInput): Promise<T>;
    getSession<T>(params: GetSessionInput): Promise<T>;
    postContent<T>(params: PostContentInput): Promise<T>;
    postText<T>(params: PostTextInput): Promise<T>;
    putSession<T>(params: PutSessionInput): Promise<T>;
}
//# sourceMappingURL=LexRuntimeService.d.ts.map