export interface Video {
    /** Video-resolution width. This must be an even number. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1 */
    width?: number;
    /** Video-resolution height. This must be an even number. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default:  */
    height?: number;
    /** Video frame rate, in fps. Default: 30. */
    framerate?: number;
    /** Bitrate for generated output, in bps. Default: 2500000. */
    bitrate?: number;
}
export interface ParticipantTokenConfiguration {
    /** Duration (in minutes), after which the corresponding participant token expires. Default: 720 (12 hours). */
    duration?: number;
    /** Customer-assigned name to help identify the token; this can be used to link a participant to a user in the customer’s own systems. This can be any UTF-8 encoded text. This field is exposed to all stag */
    userId?: string;
    /** Application-provided attributes to encode into the corresponding participant token and attach to a stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB t */
    attributes?: Record<string, any>;
    /** Set of capabilities that the user is allowed to perform in the stage. */
    capabilities?: any[];
}
export interface ParticipantThumbnailConfiguration {
    /** The targeted thumbnail-generation interval in seconds. This is configurable only if recordingMode is INTERVAL. Default: 60. */
    targetIntervalSeconds?: number;
    /** Indicates the format in which thumbnails are recorded. SEQUENTIAL records all generated thumbnails in a serial manner, to the media/thumbnails/high directory. LATEST saves the latest thumbnail in medi */
    storage?: any[];
    /** Thumbnail recording mode. Default: DISABLED. */
    recordingMode?: 'INTERVAL' | 'DISABLED';
}
export interface ParticipantRecordingHlsConfiguration {
    /** Defines the target duration for recorded segments generated when recording a stage participant. Segments may have durations longer than the specified value when needed to ensure each segment begins wi */
    targetSegmentDurationSeconds?: number;
}
export interface AutoParticipantRecordingConfiguration {
    /** ARN of the StorageConfiguration resource to use for individual participant recording. Default: "" (empty string, no storage configuration is specified). Individual participant recording cannot be star */
    storageConfigurationArn: string;
    /** Types of media to be recorded. Default: AUDIO_VIDEO. */
    mediaTypes?: 'AUDIO_VIDEO' | 'AUDIO_ONLY' | 'NONE'[];
    /** A complex type that allows you to enable/disable the recording of thumbnails for individual participant recording and modify the interval at which thumbnails are generated for the live session. */
    thumbnailConfiguration?: ParticipantThumbnailConfiguration;
    /** If a stage publisher disconnects and then reconnects within the specified interval, the multiple recordings will be considered a single recording and merged together. The default value is 0, which dis */
    recordingReconnectWindowSeconds?: number;
    /** HLS configuration object for individual participant recording. */
    hlsConfiguration?: ParticipantRecordingHlsConfiguration;
    /** Optional field to disable replica participant recording. If this is set to false when a participant is a replica, replica participants are not recorded. Default: true. */
    recordParticipantReplicas?: boolean;
}
export interface S3StorageConfiguration {
    /** Location (S3 bucket name) where recorded videos will be stored. Note that the StorageConfiguration and S3 bucket must be in the same region as the Composition. */
    bucketName: string;
}
export interface GridConfiguration {
    /** This attribute name identifies the featured slot. A participant with this attribute set to "true" (as a string value) in ParticipantTokenConfiguration is placed in the featured slot. Default: "" (no f */
    featuredParticipantAttribute?: string;
    /** Determines whether to omit participants with stopped video in the composition. Default: false. */
    omitStoppedVideo?: boolean;
    /** Sets the non-featured participant display mode, to control the aspect ratio of video tiles. VIDEO is 16:9, SQUARE is 1:1, and PORTRAIT is 3:4. Default: VIDEO. */
    videoAspectRatio?: 'AUTO' | 'VIDEO' | 'SQUARE' | 'PORTRAIT';
    /** Defines how video content fits within the participant tile: FILL (stretched), COVER (cropped), or CONTAIN (letterboxed). When not set, videoFillMode defaults to COVER fill mode for participants in the */
    videoFillMode?: 'FILL' | 'COVER' | 'CONTAIN';
    /** Specifies the spacing between participant tiles in pixels. Default: 2. */
    gridGap?: number;
    /** Attribute name in ParticipantTokenConfiguration identifying the participant ordering key. Participants with participantOrderAttribute set to "" or not specified are ordered based on their arrival time */
    participantOrderAttribute?: string;
}
export interface PipConfiguration {
    /** This attribute name identifies the featured slot. A participant with this attribute set to "true" (as a string value) in ParticipantTokenConfiguration is placed in the featured slot. Default: "" (no f */
    featuredParticipantAttribute?: string;
    /** Determines whether to omit participants with stopped video in the composition. Default: false. */
    omitStoppedVideo?: boolean;
    /** Defines how video content fits within the participant tile: FILL (stretched), COVER (cropped), or CONTAIN (letterboxed). Default: COVER. */
    videoFillMode?: 'FILL' | 'COVER' | 'CONTAIN';
    /** Specifies the spacing between participant tiles in pixels. Default: 0. */
    gridGap?: number;
    /** Specifies the participant for the PiP window. A participant with this attribute set to "true" (as a string value) in ParticipantTokenConfiguration is placed in the PiP slot. Default: "" (no PiP partic */
    pipParticipantAttribute?: string;
    /** Defines PiP behavior when all participants have left: STATIC (maintains original position/size) or DYNAMIC (expands to full composition). Default: STATIC. */
    pipBehavior?: 'STATIC' | 'DYNAMIC';
    /** Sets the PiP window’s offset position in pixels from the closest edges determined by PipPosition. Default: 0. */
    pipOffset?: number;
    /** Determines the corner position of the PiP window. Default: BOTTOM_RIGHT. */
    pipPosition?: 'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT';
    /** Specifies the width of the PiP window in pixels. When this is not set explicitly, pipWidth’s value will be based on the size of the composition and the aspect ratio of the participant’s video. */
    pipWidth?: number;
    /** Specifies the height of the PiP window in pixels. When this is not set explicitly, pipHeight’s value will be based on the size of the composition and the aspect ratio of the participant’s video. */
    pipHeight?: number;
    /** Attribute name in ParticipantTokenConfiguration identifying the participant ordering key. Participants with participantOrderAttribute set to "" or not specified are ordered based on their arrival time */
    participantOrderAttribute?: string;
}
export interface LayoutConfiguration {
    /** Configuration related to grid layout. Default: Grid layout. */
    grid?: GridConfiguration;
    /** Configuration related to PiP layout. */
    pip?: PipConfiguration;
}
export interface DestinationConfiguration {
    /** Name that can be specified to help identify the destination. */
    name?: string;
    /** An IVS channel to be used for broadcasting, for server-side composition. Either a channel or an s3 must be specified. */
    channel?: any;
    /** An S3 storage configuration to be used for recording video data. Either a channel or an s3 must be specified. */
    s3?: any;
}
export interface CreateEncoderConfigurationInput {
    /** Optional name to identify the resource. */
    name?: string;
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
    /** Video configuration. Default: video resolution 1280x720, bitrate 2500 kbps, 30 fps. */
    video?: Video;
}
export interface CreateIngestConfigurationInput {
    /** Type of ingest protocol that the user employs to broadcast. If this is set to RTMP, insecureIngest must be set to true. */
    ingestProtocol: 'RTMP' | 'RTMPS';
    /** Application-provided attributes to store in the IngestConfiguration and attach to a stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. This fiel */
    attributes?: Record<string, string>;
    /** Whether the stage allows insecure RTMP ingest. This must be set to true, if ingestProtocol is set to RTMP. Default: false. */
    insecureIngest?: boolean;
    /** Optional name that can be specified for the IngestConfiguration being created. */
    name?: string;
    /** ARN of the stage with which the IngestConfiguration is associated. */
    stageArn?: string;
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
    /** Customer-assigned name to help identify the participant using the IngestConfiguration; this can be used to link a participant to a user in the customer’s own systems. This can be any UTF-8 encoded tex */
    userId?: string;
}
export interface CreateParticipantTokenInput {
    /** ARN of the stage to which this token is scoped. */
    stageArn: string;
    /** Application-provided attributes to encode into the token and attach to a stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. This field is expose */
    attributes?: Record<string, string>;
    /** Set of capabilities that the user is allowed to perform in the stage. Default: PUBLISH, SUBSCRIBE. */
    capabilities?: 'PUBLISH' | 'SUBSCRIBE'[];
    /** Duration (in minutes), after which the token expires. Default: 720 (12 hours). */
    duration?: number;
    /** Name that can be specified to help identify the token. This can be any UTF-8 encoded text. This field is exposed to all stage participants and should not be used for personally identifying, confidenti */
    userId?: string;
}
export interface CreateStageInput {
    /** Configuration object for individual participant recording, to attach to the new stage. */
    autoParticipantRecordingConfiguration?: AutoParticipantRecordingConfiguration;
    /** Optional name that can be specified for the stage being created. */
    name?: string;
    /** Array of participant token configuration objects to attach to the new stage. */
    participantTokenConfigurations?: ParticipantTokenConfiguration[];
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
}
export interface CreateStorageConfigurationInput {
    /** A complex type that contains a storage configuration for where recorded video will be stored. */
    s3: S3StorageConfiguration;
    /** Storage configuration name. The value does not need to be unique. */
    name?: string;
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
}
export interface DeleteEncoderConfigurationInput {
    /** ARN of the EncoderConfiguration. */
    arn: string;
}
export interface DeleteIngestConfigurationInput {
    /** ARN of the IngestConfiguration. */
    arn: string;
    /** Optional field to force deletion of the IngestConfiguration. If this is set to true when a participant is actively publishing, the participant is disconnected from the stage, followed by deletion of t */
    force?: boolean;
}
export interface DeletePublicKeyInput {
    /** ARN of the public key to be deleted. */
    arn: string;
}
export interface DeleteStageInput {
    /** ARN of the stage to be deleted. */
    arn: string;
}
export interface DeleteStorageConfigurationInput {
    /** ARN of the storage configuration to be deleted. */
    arn: string;
}
export interface DisconnectParticipantInput {
    /** Identifier of the participant to be disconnected. IVS assigns this; it is returned by CreateParticipantToken (for streams using WebRTC ingest) or CreateIngestConfiguration (for streams using RTMP inge */
    participantId: string;
    /** ARN of the stage to which the participant is attached. */
    stageArn: string;
    /** Description of why this participant is being disconnected. */
    reason?: string;
}
export interface GetCompositionInput {
    /** ARN of the Composition resource. */
    arn: string;
}
export interface GetEncoderConfigurationInput {
    /** ARN of the EncoderConfiguration resource. */
    arn: string;
}
export interface GetIngestConfigurationInput {
    /** ARN of the ingest for which the information is to be retrieved. */
    arn: string;
}
export interface GetParticipantInput {
    /** Unique identifier for the participant. This is assigned by IVS and returned by CreateParticipantToken. */
    participantId: string;
    /** ID of a session within the stage. */
    sessionId: string;
    /** Stage ARN. */
    stageArn: string;
}
export interface GetPublicKeyInput {
    /** ARN of the public key for which the information is to be retrieved. */
    arn: string;
}
export interface GetStageInput {
    /** ARN of the stage for which the information is to be retrieved. */
    arn: string;
}
export interface GetStageSessionInput {
    /** ID of a session within the stage. */
    sessionId: string;
    /** ARN of the stage for which the information is to be retrieved. */
    stageArn: string;
}
export interface GetStorageConfigurationInput {
    /** ARN of the storage configuration to be retrieved. */
    arn: string;
}
export interface ImportPublicKeyInput {
    /** The content of the public key to be imported. */
    publicKeyMaterial: string;
    /** Name of the public key to be imported. */
    name?: string;
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
}
export interface ListCompositionsInput {
    /** Filters the Composition list to match the specified EncoderConfiguration attached to at least one of its output. */
    filterByEncoderConfigurationArn?: string;
    /** Filters the Composition list to match the specified Stage ARN. */
    filterByStageArn?: string;
    /** Maximum number of results to return. Default: 100. */
    maxResults?: number;
    /** The first Composition to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListEncoderConfigurationsInput {
    /** Maximum number of results to return. Default: 100. */
    maxResults?: number;
    /** The first encoder configuration to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListIngestConfigurationsInput {
    /** Filters the response list to match the specified stage ARN. Only one filter (by stage ARN or by state) can be used at a time. */
    filterByStageArn?: string;
    /** Filters the response list to match the specified state. Only one filter (by stage ARN or by state) can be used at a time. */
    filterByState?: 'ACTIVE' | 'INACTIVE';
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first IngestConfiguration to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListParticipantEventsInput {
    /** Unique identifier for this participant. This is assigned by IVS and returned by CreateParticipantToken. */
    participantId: string;
    /** ID of a session within the stage. */
    sessionId: string;
    /** Stage ARN. */
    stageArn: string;
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first participant event to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListParticipantReplicasInput {
    /** Participant ID of the publisher that has been replicated. This is assigned by IVS and returned by CreateParticipantToken or the jti (JWT ID) used to create a self signed token. */
    participantId: string;
    /** ARN of the stage where the participant is publishing. */
    sourceStageArn: string;
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first participant to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListParticipantsInput {
    /** ID of the session within the stage. */
    sessionId: string;
    /** Stage ARN. */
    stageArn: string;
    /** Filters the response list to only show participants who published during the stage session. Only one of filterByUserId, filterByPublished, filterByState, or filterByRecordingState can be provided per  */
    filterByPublished?: boolean;
    /** Filters the response list to only show participants with the specified recording state. Only one of filterByUserId, filterByPublished, filterByState, or filterByRecordingState can be provided per requ */
    filterByRecordingState?: 'STARTING' | 'ACTIVE' | 'STOPPING' | 'STOPPED' | 'FAILED';
    /** Filters the response list to only show participants in the specified state. Only one of filterByUserId, filterByPublished, filterByState, or filterByRecordingState can be provided per request. */
    filterByState?: 'CONNECTED' | 'DISCONNECTED';
    /** Filters the response list to match the specified user ID. Only one of filterByUserId, filterByPublished, filterByState, or filterByRecordingState can be provided per request. A userId is a customer-as */
    filterByUserId?: string;
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first participant to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListPublicKeysInput {
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first public key to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListStagesInput {
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first stage to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListStageSessionsInput {
    /** Stage ARN. */
    stageArn: string;
    /** Maximum number of results to return. Default: 50. */
    maxResults?: number;
    /** The first stage session to retrieve. This is used for pagination; see the nextToken response field. */
    nextToken?: string;
}
export interface ListStorageConfigurationsInput {
    /** Maximum number of storage configurations to return. Default: your service quota or 100, whichever is smaller. */
    maxResults?: number;
    /** The first storage configuration 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 StartCompositionInput {
    /** Array of destination configuration. */
    destinations: DestinationConfiguration[];
    /** ARN of the stage to be used for compositing. */
    stageArn: string;
    /** Idempotency token. */
    idempotencyToken?: string;
    /** Layout object to configure composition parameters. */
    layout?: LayoutConfiguration;
    /** Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions  */
    tags?: Record<string, string>;
}
export interface StartParticipantReplicationInput {
    /** ARN of the stage to which the participant will be replicated. */
    destinationStageArn: string;
    /** Participant ID of the publisher that will be replicated. This is assigned by IVS and returned by CreateParticipantToken or the jti (JWT ID) used to create a self signed token. */
    participantId: string;
    /** ARN of the stage where the participant is publishing. */
    sourceStageArn: string;
    /** Application-provided attributes to set on the replicated participant in the destination stage. Map keys and values can contain UTF-8 encoded text. The maximum length of this field is 1 KB total. This  */
    attributes?: Record<string, string>;
    /** If the participant disconnects and then reconnects within the specified interval, replication will continue to be ACTIVE. Default: 0. */
    reconnectWindowSeconds?: number;
}
export interface StopCompositionInput {
    /** ARN of the Composition. */
    arn: string;
}
export interface StopParticipantReplicationInput {
    /** ARN of the stage where the participant has been replicated. */
    destinationStageArn: string;
    /** Participant ID of the publisher that has been replicated. This is assigned by IVS and returned by CreateParticipantToken or the jti (JWT ID) used to create a self signed token. */
    participantId: string;
    /** ARN of the stage where the participant is publishing. */
    sourceStageArn: 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 AWS Resources and Tag Editor for details, including restri */
    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 tag keys (strings) for the tags to be removed. See Best practices and strategies in Tagging AWS Resources and Tag Editor for details, including restrictions that apply to tags and "Tag naming */
    tagKeys: string[];
}
export interface UpdateIngestConfigurationInput {
    /** ARN of the IngestConfiguration, for which the related stage ARN needs to be updated. */
    arn: string;
    /** Stage ARN that needs to be updated. */
    stageArn?: string;
}
export interface UpdateStageInput {
    /** ARN of the stage to be updated. */
    arn: string;
    /** Configuration object for individual participant recording, to attach to the stage. Note that this cannot be updated while recording is active. */
    autoParticipantRecordingConfiguration?: AutoParticipantRecordingConfiguration;
    /** Name of the stage to be updated. */
    name?: string;
}
/** IVS RealTime service binding for Step Functions SDK integrations. */
export declare class IVSRealTime {
    constructor();
    createEncoderConfiguration<T>(params: CreateEncoderConfigurationInput): Promise<T>;
    createIngestConfiguration<T>(params: CreateIngestConfigurationInput): Promise<T>;
    createParticipantToken<T>(params: CreateParticipantTokenInput): Promise<T>;
    createStage<T>(params: CreateStageInput): Promise<T>;
    createStorageConfiguration<T>(params: CreateStorageConfigurationInput): Promise<T>;
    deleteEncoderConfiguration<T>(params: DeleteEncoderConfigurationInput): Promise<T>;
    deleteIngestConfiguration<T>(params: DeleteIngestConfigurationInput): Promise<T>;
    deletePublicKey<T>(params: DeletePublicKeyInput): Promise<T>;
    deleteStage<T>(params: DeleteStageInput): Promise<T>;
    deleteStorageConfiguration<T>(params: DeleteStorageConfigurationInput): Promise<T>;
    disconnectParticipant<T>(params: DisconnectParticipantInput): Promise<T>;
    getComposition<T>(params: GetCompositionInput): Promise<T>;
    getEncoderConfiguration<T>(params: GetEncoderConfigurationInput): Promise<T>;
    getIngestConfiguration<T>(params: GetIngestConfigurationInput): Promise<T>;
    getParticipant<T>(params: GetParticipantInput): Promise<T>;
    getPublicKey<T>(params: GetPublicKeyInput): Promise<T>;
    getStage<T>(params: GetStageInput): Promise<T>;
    getStageSession<T>(params: GetStageSessionInput): Promise<T>;
    getStorageConfiguration<T>(params: GetStorageConfigurationInput): Promise<T>;
    importPublicKey<T>(params: ImportPublicKeyInput): Promise<T>;
    listCompositions<T>(params: ListCompositionsInput): Promise<T>;
    listEncoderConfigurations<T>(params: ListEncoderConfigurationsInput): Promise<T>;
    listIngestConfigurations<T>(params: ListIngestConfigurationsInput): Promise<T>;
    listParticipantEvents<T>(params: ListParticipantEventsInput): Promise<T>;
    listParticipantReplicas<T>(params: ListParticipantReplicasInput): Promise<T>;
    listParticipants<T>(params: ListParticipantsInput): Promise<T>;
    listPublicKeys<T>(params: ListPublicKeysInput): Promise<T>;
    listStages<T>(params: ListStagesInput): Promise<T>;
    listStageSessions<T>(params: ListStageSessionsInput): Promise<T>;
    listStorageConfigurations<T>(params: ListStorageConfigurationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startComposition<T>(params: StartCompositionInput): Promise<T>;
    startParticipantReplication<T>(params: StartParticipantReplicationInput): Promise<T>;
    stopComposition<T>(params: StopCompositionInput): Promise<T>;
    stopParticipantReplication<T>(params: StopParticipantReplicationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateIngestConfiguration<T>(params: UpdateIngestConfigurationInput): Promise<T>;
    updateStage<T>(params: UpdateStageInput): Promise<T>;
}
//# sourceMappingURL=IVSRealTime.d.ts.map