export interface S3DestinationConfiguration {
    /** Name of the Amazon S3 bucket where chat activity will be logged. */
    bucketName: string;
}
export interface CloudWatchLogsDestinationConfiguration {
    /** Name of the Amazon Cloudwatch Logs destination where chat activity will be logged. */
    logGroupName: string;
}
export interface FirehoseDestinationConfiguration {
    /** Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged. */
    deliveryStreamName: string;
}
export interface MessageReviewHandler {
    /** Identifier of the message review handler. Currently this must be an ARN of a lambda function. */
    uri?: string;
    /** Specifies the fallback behavior (whether the message is allowed or denied) if the handler does not return a valid response, encounters an error, or times out. (For the timeout period, see Service Quot */
    fallbackResult?: 'ALLOW' | 'DENY';
}
export interface CreateChatTokenInput {
    /** Identifier of the room that the client is trying to access. Currently this must be an ARN. */
    roomIdentifier: string;
    /** Application-provided ID that uniquely identifies the user associated with this token. This can be any UTF-8 encoded text. */
    userId: string;
    /** Application-provided attributes to encode into the token and attach to a chat session. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. */
    attributes?: Record<string, string>;
    /** Set of capabilities that the user is allowed to perform in the room. Default: None (the capability to view messages is implicitly included in all requests). */
    capabilities?: 'SEND_MESSAGE' | 'DISCONNECT_USER' | 'DELETE_MESSAGE'[];
    /** Session duration (in minutes), after which the session expires. Default: 60 (1 hour). */
    sessionDurationInMinutes?: number;
}
export interface CreateLoggingConfigurationInput {
    /** A complex type that contains a destination configuration for where chat content will be logged. There can be only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguratio */
    destinationConfiguration: {
        s3?: S3DestinationConfiguration;
    } | {
        cloudWatchLogs?: CloudWatchLogsDestinationConfiguration;
    } | {
        firehose?: FirehoseDestinationConfiguration;
    };
    /** Logging-configuration name. The value does not need to be unique. */
    name?: string;
    /** Tags to attach to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details, includ */
    tags?: Record<string, string>;
}
export interface CreateRoomInput {
    /** Array of logging-configuration identifiers attached to the room. */
    loggingConfigurationIdentifiers?: string[];
    /** Maximum number of characters in a single message. Messages are expected to be UTF-8 encoded and this limit applies specifically to rune/code-point count, not number of bytes. Default: 500. */
    maximumMessageLength?: number;
    /** Maximum number of messages per second that can be sent to the room (by all clients). Default: 10. */
    maximumMessageRatePerSecond?: number;
    /** Configuration information for optional review of messages. */
    messageReviewHandler?: MessageReviewHandler;
    /** Room name. The value does not need to be unique. */
    name?: string;
    /** Tags to attach to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details, includ */
    tags?: Record<string, string>;
}
export interface DeleteLoggingConfigurationInput {
    /** Identifier of the logging configuration to be deleted. */
    identifier: string;
}
export interface DeleteMessageInput {
    /** ID of the message to be deleted. This is the Id field in the received message (see Message (Subscribe) in the Chat Messaging API). */
    id: string;
    /** Identifier of the room where the message should be deleted. Currently this must be an ARN. */
    roomIdentifier: string;
    /** Reason for deleting the message. */
    reason?: string;
}
export interface DeleteRoomInput {
    /** Identifier of the room to be deleted. Currently this must be an ARN. */
    identifier: string;
}
export interface DisconnectUserInput {
    /** Identifier of the room from which the user's clients should be disconnected. Currently this must be an ARN. */
    roomIdentifier: string;
    /** ID of the user (connection) to disconnect from the room. */
    userId: string;
    /** Reason for disconnecting the user. */
    reason?: string;
}
export interface GetLoggingConfigurationInput {
    /** Identifier of the logging configuration to be retrieved. */
    identifier: string;
}
export interface GetRoomInput {
    /** Identifier of the room for which the configuration is to be retrieved. Currently this must be an ARN. */
    identifier: string;
}
export interface ListLoggingConfigurationsInput {
    /** Maximum number of logging configurations to return. Default: 50. */
    maxResults?: number;
    /** The first logging configurations to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListRoomsInput {
    /** Logging-configuration identifier. */
    loggingConfigurationIdentifier?: string;
    /** Maximum number of rooms to return. Default: 50. */
    maxResults?: number;
    /** Filters the list to match the specified message review handler URI. */
    messageReviewHandlerUri?: string;
    /** Filters the list to match the specified room name. */
    name?: string;
    /** The first room to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource to be retrieved. The ARN must be URL-encoded. */
    resourceArn: string;
}
export interface SendEventInput {
    /** Application-defined name of the event to send to clients. */
    eventName: string;
    /** Identifier of the room to which the event will be sent. Currently this must be an ARN. */
    roomIdentifier: string;
    /** Application-defined metadata to attach to the event sent to clients. The maximum length of the metadata is 1 KB total. */
    attributes?: Record<string, string>;
}
export interface TagResourceInput {
    /** The ARN of the resource to be tagged. The ARN must be URL-encoded. */
    resourceArn: string;
    /** Array of tags to be added or updated. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details,  */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource to be untagged. The ARN must be URL-encoded. */
    resourceArn: string;
    /** Array of tags to be removed. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details, including */
    tagKeys: string[];
}
export interface UpdateLoggingConfigurationInput {
    /** Identifier of the logging configuration to be updated. */
    identifier: string;
    /** A complex type that contains a destination configuration for where chat content will be logged. There can be only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguratio */
    destinationConfiguration?: {
        s3?: S3DestinationConfiguration;
    } | {
        cloudWatchLogs?: CloudWatchLogsDestinationConfiguration;
    } | {
        firehose?: FirehoseDestinationConfiguration;
    };
    /** Logging-configuration name. The value does not need to be unique. */
    name?: string;
}
export interface UpdateRoomInput {
    /** Identifier of the room to be updated. Currently this must be an ARN. */
    identifier: string;
    /** Array of logging-configuration identifiers attached to the room. */
    loggingConfigurationIdentifiers?: string[];
    /** The maximum number of characters in a single message. Messages are expected to be UTF-8 encoded and this limit applies specifically to rune/code-point count, not number of bytes. Default: 500. */
    maximumMessageLength?: number;
    /** Maximum number of messages per second that can be sent to the room (by all clients). Default: 10. */
    maximumMessageRatePerSecond?: number;
    /** Configuration information for optional review of messages. Specify an empty uri string to disassociate a message review handler from the specified room. */
    messageReviewHandler?: MessageReviewHandler;
    /** Room name. The value does not need to be unique. */
    name?: string;
}
/** ivschat service binding for Step Functions SDK integrations. */
export declare class ivschat {
    constructor();
    createChatToken<T>(params: CreateChatTokenInput): Promise<T>;
    createLoggingConfiguration<T>(params: CreateLoggingConfigurationInput): Promise<T>;
    createRoom<T>(params: CreateRoomInput): Promise<T>;
    deleteLoggingConfiguration<T>(params: DeleteLoggingConfigurationInput): Promise<T>;
    deleteMessage<T>(params: DeleteMessageInput): Promise<T>;
    deleteRoom<T>(params: DeleteRoomInput): Promise<T>;
    disconnectUser<T>(params: DisconnectUserInput): Promise<T>;
    getLoggingConfiguration<T>(params: GetLoggingConfigurationInput): Promise<T>;
    getRoom<T>(params: GetRoomInput): Promise<T>;
    listLoggingConfigurations<T>(params: ListLoggingConfigurationsInput): Promise<T>;
    listRooms<T>(params: ListRoomsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    sendEvent<T>(params: SendEventInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateLoggingConfiguration<T>(params: UpdateLoggingConfigurationInput): Promise<T>;
    updateRoom<T>(params: UpdateRoomInput): Promise<T>;
}
//# sourceMappingURL=ivschat.d.ts.map