export interface SingleMasterConfiguration {
    /** The period of time (in seconds) a signaling channel retains undelivered messages before they are discarded. Use to update this value. */
    MessageTtlSeconds?: number;
}
export interface Tag {
    /** The key of the tag that is associated with the specified signaling channel. */
    Key: string;
    /** The value of the tag that is associated with the specified signaling channel. */
    Value: string;
}
export interface StreamStorageConfiguration {
    /** The default storage tier for the stream data. This setting determines the storage class used for stream data, affecting both performance characteristics and storage costs. Available storage tiers: HOT */
    DefaultStorageTier: 'HOT' | 'WARM';
}
export interface SingleMasterChannelEndpointConfiguration {
    /** This property is used to determine the nature of communication over this SINGLE_MASTER signaling channel. If WSS is specified, this API returns a websocket endpoint. If HTTPS is specified, this API re */
    Protocols?: 'WSS' | 'HTTPS' | 'WEBRTC'[];
    /** This property is used to determine messaging permissions in this SINGLE_MASTER signaling channel. If MASTER is specified, this API returns an endpoint that a client can use to receive offers from and  */
    Role?: 'MASTER' | 'VIEWER';
}
export interface ChannelNameCondition {
    /** A comparison operator. Currently, you can only specify the BEGINS_WITH operator, which finds signaling channels whose names begin with a given prefix. */
    ComparisonOperator?: 'BEGINS_WITH';
    /** A value to compare. */
    ComparisonValue?: string;
}
export interface StreamNameCondition {
    /** A comparison operator. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix. */
    ComparisonOperator?: 'BEGINS_WITH';
    /** A value to compare. */
    ComparisonValue?: string;
}
export interface RecorderConfig {
    /** The configuration details that consist of the credentials required (MediaUriSecretArn and MediaUriType) to access the media files streamed to the camera. */
    MediaSourceConfig: any;
    /** The configuration that consists of the ScheduleExpression and the DurationInMinutes details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the Schedu */
    ScheduleConfig?: any;
}
export interface UploaderConfig {
    /** The configuration that consists of the ScheduleExpression and the DurationInMinutes details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the Schedu */
    ScheduleConfig: any;
}
export interface DeletionConfig {
    /** The number of hours that you want to retain the data in the stream on the Edge Agent. The default value of the retention time is 720 hours, which translates to 30 days. */
    EdgeRetentionInHours?: number;
    /** The value of the local size required in order to delete the edge configuration. */
    LocalSizeConfig?: any;
    /** The boolean value used to indicate whether or not you want to mark the media for deletion, once it has been uploaded to the Kinesis Video Stream cloud. The media files can be deleted if any of the del */
    DeleteAfterUpload?: boolean;
}
export interface EdgeConfig {
    /** The "Internet of Things (IoT) Thing" Arn of the stream. */
    HubDeviceArn: string;
    /** The recorder configuration consists of the local MediaSourceConfig details, that are used as credentials to access the local media files streamed on the camera. */
    RecorderConfig: RecorderConfig;
    /** The uploader configuration contains the ScheduleExpression details that are used to schedule upload jobs for the recorded media files from the Edge Agent to a Kinesis Video Stream. */
    UploaderConfig?: UploaderConfig;
    /** The deletion configuration is made up of the retention time (EdgeRetentionInHours) and local size configuration (LocalSizeConfig) details that are used to make the deletion. */
    DeletionConfig?: DeletionConfig;
}
export interface ImageGenerationDestinationConfig {
    /** The Uniform Resource Identifier (URI) that identifies where the images will be delivered. */
    Uri: string;
    /** The Amazon Web Services Region of the S3 bucket where images will be delivered. This DestinationRegion must match the Region where the stream is located. */
    DestinationRegion: string;
}
export interface ImageGenerationConfiguration {
    /** Indicates whether the ContinuousImageGenerationConfigurations API is enabled or disabled. */
    Status: 'ENABLED' | 'DISABLED';
    /** The origin of the Server or Producer timestamps to use to generate the images. */
    ImageSelectorType: 'SERVER_TIMESTAMP' | 'PRODUCER_TIMESTAMP';
    /** The structure that contains the information required to deliver images to a customer. */
    DestinationConfig: ImageGenerationDestinationConfig;
    /** The time interval in milliseconds (ms) at which the images need to be generated from the stream. The minimum value that can be provided is 200 ms. If the timestamp range is less than the sampling inte */
    SamplingInterval: number;
    /** The accepted image format. */
    Format: 'JPEG' | 'PNG';
    /** The list of a key-value pair structure that contains extra parameters that can be applied when the image is generated. The FormatConfig key is the JPEGQuality, which indicates the JPEG quality key to  */
    FormatConfig?: Record<string, string>;
    /** The width of the output image that is used in conjunction with the HeightPixels parameter. When both WidthPixels and HeightPixels parameters are provided, the image will be stretched to fit the specif */
    WidthPixels?: number;
    /** The height of the output image that is used in conjunction with the WidthPixels parameter. When both HeightPixels and WidthPixels parameters are provided, the image will be stretched to fit the specif */
    HeightPixels?: number;
}
export interface MediaStorageConfiguration {
    /** The Amazon Resource Name (ARN) of the stream. */
    StreamARN?: string;
    /** The status of the media storage configuration. */
    Status: 'ENABLED' | 'DISABLED';
}
export interface NotificationDestinationConfig {
    /** The Uniform Resource Identifier (URI) that identifies where the images will be delivered. */
    Uri: string;
}
export interface NotificationConfiguration {
    /** Indicates if a notification configuration is enabled or disabled. */
    Status: 'ENABLED' | 'DISABLED';
    /** The destination information required to deliver a notification to a customer. */
    DestinationConfig: NotificationDestinationConfig;
}
export interface CreateSignalingChannelInput {
    /** A name for the signaling channel that you are creating. It must be unique for each Amazon Web Services account and Amazon Web Services Region. */
    ChannelName: string;
    /** A type of the signaling channel that you are creating. Currently, SINGLE_MASTER is the only supported channel type. */
    ChannelType?: 'SINGLE_MASTER' | 'FULL_MESH';
    /** A structure containing the configuration for the SINGLE_MASTER channel type. The default configuration for the channel message's time to live is 60 seconds (1 minute). */
    SingleMasterConfiguration?: SingleMasterConfiguration;
    /** A set of tags (key-value pairs) that you want to associate with this channel. */
    Tags?: Tag[];
}
export interface CreateStreamInput {
    /** A name for the stream that you are creating. The stream name is an identifier for the stream, and must be unique for each account and region. */
    StreamName: string;
    /** The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream. The default value is 0, indicating that t */
    DataRetentionInHours?: number;
    /** The name of the device that is writing to the stream. In the current implementation, Kinesis Video Streams doesn't use this name. */
    DeviceName?: string;
    /** The ID of the Key Management Service (KMS) key that you want Kinesis Video Streams to use to encrypt stream data. If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo) i */
    KmsKeyId?: string;
    /** The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaTy */
    MediaType?: string;
    /** The configuration for the stream's storage, including the default storage tier for stream data. This configuration determines how stream data is stored and accessed, with different tiers offering vary */
    StreamStorageConfiguration?: StreamStorageConfiguration;
    /** A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional). */
    Tags?: Record<string, string>;
}
export interface DeleteEdgeConfigurationInput {
    /** The Amazon Resource Name (ARN) of the stream. Specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream from which to delete the edge configuration. Specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface DeleteSignalingChannelInput {
    /** The Amazon Resource Name (ARN) of the signaling channel that you want to delete. */
    ChannelARN: string;
    /** The current version of the signaling channel that you want to delete. You can obtain the current version by invoking the DescribeSignalingChannel or ListSignalingChannels API operations. */
    CurrentVersion?: string;
}
export interface DeleteStreamInput {
    /** The Amazon Resource Name (ARN) of the stream that you want to delete. */
    StreamARN: string;
    /** Optional: The version of the stream that you want to delete. Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the DescribeStream A */
    CurrentVersion?: string;
}
export interface DescribeEdgeConfigurationInput {
    /** The Amazon Resource Name (ARN) of the stream. Specify either the StreamNameor the StreamARN. */
    StreamARN?: string;
    /** The name of the stream whose edge configuration you want to update. Specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface DescribeImageGenerationConfigurationInput {
    /** The Amazon Resource Name (ARN) of the Kinesis video stream from which to retrieve the image generation configuration. You must specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream from which to retrieve the image generation configuration. You must specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface DescribeMappedResourceConfigurationInput {
    /** The maximum number of results to return in the response. */
    MaxResults?: number;
    /** The token to provide in your next request, to get another batch of results. */
    NextToken?: string;
    /** The Amazon Resource Name (ARN) of the stream. */
    StreamARN?: string;
    /** The name of the stream. */
    StreamName?: string;
}
export interface DescribeMediaStorageConfigurationInput {
    /** The Amazon Resource Name (ARN) of the channel. */
    ChannelARN?: string;
    /** The name of the channel. */
    ChannelName?: string;
}
export interface DescribeNotificationConfigurationInput {
    /** The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to retrieve the notification configuration. You must specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream from which to retrieve the notification configuration. You must specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface DescribeSignalingChannelInput {
    /** The ARN of the signaling channel that you want to describe. */
    ChannelARN?: string;
    /** The name of the signaling channel that you want to describe. */
    ChannelName?: string;
}
export interface DescribeStreamInput {
    /** The Amazon Resource Name (ARN) of the stream. */
    StreamARN?: string;
    /** The name of the stream. */
    StreamName?: string;
}
export interface DescribeStreamStorageConfigurationInput {
    /** The Amazon Resource Name (ARN) of the stream for which you want to retrieve the storage configuration. */
    StreamARN?: string;
    /** The name of the stream for which you want to retrieve the storage configuration. */
    StreamName?: string;
}
export interface GetDataEndpointInput {
    /** The name of the API action for which to get an endpoint. */
    APIName: 'PUT_MEDIA' | 'GET_MEDIA' | 'LIST_FRAGMENTS' | 'GET_MEDIA_FOR_FRAGMENT_LIST' | 'GET_HLS_STREAMING_SESSION_URL' | 'GET_DASH_STREAMING_SESSION_URL' | 'GET_CLIP' | 'GET_IMAGES';
    /** The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName in the request. */
    StreamARN?: string;
    /** The name of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamARN in the request. */
    StreamName?: string;
}
export interface GetSignalingChannelEndpointInput {
    /** The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint. */
    ChannelARN: string;
    /** A structure containing the endpoint configuration for the SINGLE_MASTER channel type. */
    SingleMasterChannelEndpointConfiguration?: SingleMasterChannelEndpointConfiguration;
}
export interface ListEdgeAgentConfigurationsInput {
    /** The "Internet of Things (IoT) Thing" Arn of the edge agent. */
    HubDeviceArn: string;
    /** The maximum number of edge configurations to return in the response. The default is 5. */
    MaxResults?: number;
    /** If you specify this parameter, when the result of a ListEdgeAgentConfigurations operation is truncated, the call returns the NextToken in the response. To get another batch of edge configurations, pro */
    NextToken?: string;
}
export interface ListSignalingChannelsInput {
    /** Optional: Returns only the channels that satisfy a specific condition. */
    ChannelNameCondition?: ChannelNameCondition;
    /** The maximum number of channels to return in the response. The default is 500. */
    MaxResults?: number;
    /** If you specify this parameter, when the result of a ListSignalingChannels operation is truncated, the call returns the NextToken in the response. To get another batch of channels, provide this token i */
    NextToken?: string;
}
export interface ListStreamsInput {
    /** The maximum number of streams to return in the response. The default is 10,000. */
    MaxResults?: number;
    /** If you specify this parameter, when the result of a ListStreams operation is truncated, the call returns the NextToken in the response. To get another batch of streams, provide this token in your next */
    NextToken?: string;
    /** Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition. */
    StreamNameCondition?: StreamNameCondition;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the signaling channel for which you want to list tags. */
    ResourceARN: string;
    /** If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags. */
    NextToken?: string;
}
export interface ListTagsForStreamInput {
    /** If you specify this parameter and the result of a ListTagsForStream call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags. */
    NextToken?: string;
    /** The Amazon Resource Name (ARN) of the stream that you want to list tags for. */
    StreamARN?: string;
    /** The name of the stream that you want to list tags for. */
    StreamName?: string;
}
export interface StartEdgeConfigurationUpdateInput {
    /** The edge configuration details required to invoke the update process. */
    EdgeConfig: EdgeConfig;
    /** The Amazon Resource Name (ARN) of the stream. Specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream whose edge configuration you want to update. Specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the signaling channel to which you want to add tags. */
    ResourceARN: string;
    /** A list of tags to associate with the specified signaling channel. Each tag is a key-value pair. */
    Tags: Tag[];
}
export interface TagStreamInput {
    /** A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional). */
    Tags: Record<string, string>;
    /** The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to. */
    StreamARN?: string;
    /** The name of the stream that you want to add the tag or tags to. */
    StreamName?: string;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the signaling channel from which you want to remove tags. */
    ResourceARN: string;
    /** A list of the keys of the tags that you want to remove. */
    TagKeyList: string[];
}
export interface UntagStreamInput {
    /** A list of the keys of the tags that you want to remove. */
    TagKeyList: string[];
    /** The Amazon Resource Name (ARN) of the stream that you want to remove tags from. */
    StreamARN?: string;
    /** The name of the stream that you want to remove tags from. */
    StreamName?: string;
}
export interface UpdateDataRetentionInput {
    /** The version of the stream whose retention period you want to change. To get the version, call either the DescribeStream or the ListStreams API. */
    CurrentVersion: string;
    /** The number of hours to adjust the current retention by. The value you specify is added to or subtracted from the current value, depending on the operation. The minimum value for data retention is 0 an */
    DataRetentionChangeInHours: number;
    /** Indicates whether you want to increase or decrease the retention period. */
    Operation: 'INCREASE_DATA_RETENTION' | 'DECREASE_DATA_RETENTION';
    /** The Amazon Resource Name (ARN) of the stream whose retention period you want to change. */
    StreamARN?: string;
    /** The name of the stream whose retention period you want to change. */
    StreamName?: string;
}
export interface UpdateImageGenerationConfigurationInput {
    /** The structure that contains the information required for the KVS images delivery. If the structure is null, the configuration will be deleted from the stream. */
    ImageGenerationConfiguration?: ImageGenerationConfiguration;
    /** The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to update the image generation configuration. You must specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream from which to update the image generation configuration. You must specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface UpdateMediaStorageConfigurationInput {
    /** The Amazon Resource Name (ARN) of the channel. */
    ChannelARN: string;
    /** A structure that encapsulates, or contains, the media storage configuration properties. */
    MediaStorageConfiguration: MediaStorageConfiguration;
}
export interface UpdateNotificationConfigurationInput {
    /** The structure containing the information required for notifications. If the structure is null, the configuration will be deleted from the stream. */
    NotificationConfiguration?: NotificationConfiguration;
    /** The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to update the notification configuration. You must specify either the StreamName or the StreamARN. */
    StreamARN?: string;
    /** The name of the stream from which to update the notification configuration. You must specify either the StreamName or the StreamARN. */
    StreamName?: string;
}
export interface UpdateSignalingChannelInput {
    /** The Amazon Resource Name (ARN) of the signaling channel that you want to update. */
    ChannelARN: string;
    /** The current version of the signaling channel that you want to update. */
    CurrentVersion: string;
    /** The structure containing the configuration for the SINGLE_MASTER type of the signaling channel that you want to update. This parameter and the channel message's time-to-live are required for channels  */
    SingleMasterConfiguration?: SingleMasterConfiguration;
}
export interface UpdateStreamInput {
    /** The version of the stream whose metadata you want to update. */
    CurrentVersion: string;
    /** The name of the device that is writing to the stream. In the current implementation, Kinesis Video Streams does not use this name. */
    DeviceName?: string;
    /** The stream's media type. Use MediaType to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see Media Types. If you choose to */
    MediaType?: string;
    /** The ARN of the stream whose metadata you want to update. */
    StreamARN?: string;
    /** The name of the stream whose metadata you want to update. The stream name is an identifier for the stream, and must be unique for each account and region. */
    StreamName?: string;
}
export interface UpdateStreamStorageConfigurationInput {
    /** The version of the stream whose storage configuration you want to change. To get the version, call either the DescribeStream or the ListStreams API. */
    CurrentVersion: string;
    /** The new storage configuration for the stream. This includes the default storage tier that determines how stream data is stored and accessed. Different storage tiers offer varying levels of performance */
    StreamStorageConfiguration: StreamStorageConfiguration;
    /** The Amazon Resource Name (ARN) of the stream for which you want to update the storage configuration. */
    StreamARN?: string;
    /** The name of the stream for which you want to update the storage configuration. */
    StreamName?: string;
}
/** Kinesis Video service binding for Step Functions SDK integrations. */
export declare class KinesisVideo {
    constructor();
    createSignalingChannel<T>(params: CreateSignalingChannelInput): Promise<T>;
    createStream<T>(params: CreateStreamInput): Promise<T>;
    deleteEdgeConfiguration<T>(params: DeleteEdgeConfigurationInput): Promise<T>;
    deleteSignalingChannel<T>(params: DeleteSignalingChannelInput): Promise<T>;
    deleteStream<T>(params: DeleteStreamInput): Promise<T>;
    describeEdgeConfiguration<T>(params: DescribeEdgeConfigurationInput): Promise<T>;
    describeImageGenerationConfiguration<T>(params: DescribeImageGenerationConfigurationInput): Promise<T>;
    describeMappedResourceConfiguration<T>(params: DescribeMappedResourceConfigurationInput): Promise<T>;
    describeMediaStorageConfiguration<T>(params: DescribeMediaStorageConfigurationInput): Promise<T>;
    describeNotificationConfiguration<T>(params: DescribeNotificationConfigurationInput): Promise<T>;
    describeSignalingChannel<T>(params: DescribeSignalingChannelInput): Promise<T>;
    describeStream<T>(params: DescribeStreamInput): Promise<T>;
    describeStreamStorageConfiguration<T>(params: DescribeStreamStorageConfigurationInput): Promise<T>;
    getDataEndpoint<T>(params: GetDataEndpointInput): Promise<T>;
    getSignalingChannelEndpoint<T>(params: GetSignalingChannelEndpointInput): Promise<T>;
    listEdgeAgentConfigurations<T>(params: ListEdgeAgentConfigurationsInput): Promise<T>;
    listSignalingChannels<T>(params: ListSignalingChannelsInput): Promise<T>;
    listStreams<T>(params: ListStreamsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTagsForStream<T>(params: ListTagsForStreamInput): Promise<T>;
    startEdgeConfigurationUpdate<T>(params: StartEdgeConfigurationUpdateInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    tagStream<T>(params: TagStreamInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    untagStream<T>(params: UntagStreamInput): Promise<T>;
    updateDataRetention<T>(params: UpdateDataRetentionInput): Promise<T>;
    updateImageGenerationConfiguration<T>(params: UpdateImageGenerationConfigurationInput): Promise<T>;
    updateMediaStorageConfiguration<T>(params: UpdateMediaStorageConfigurationInput): Promise<T>;
    updateNotificationConfiguration<T>(params: UpdateNotificationConfigurationInput): Promise<T>;
    updateSignalingChannel<T>(params: UpdateSignalingChannelInput): Promise<T>;
    updateStream<T>(params: UpdateStreamInput): Promise<T>;
    updateStreamStorageConfiguration<T>(params: UpdateStreamStorageConfigurationInput): Promise<T>;
}
//# sourceMappingURL=KinesisVideo.d.ts.map