export interface EgressAccessLogs {
    /** Customize the log group name. */
    LogGroupName?: string;
}
export interface IngressAccessLogs {
    /** Customize the log group name. */
    LogGroupName?: string;
}
export interface S3Destination {
    /** The name of an S3 bucket within which harvested content will be exported */
    BucketName: string;
    /** The key in the specified S3 bucket where the harvested top-level manifest will be placed. */
    ManifestKey: string;
    /** The IAM role used to write to the specified S3 bucket */
    RoleArn: string;
}
export interface Authorization {
    /** The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint. */
    CdnIdentifierSecret: string;
    /** The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager. */
    SecretsRoleArn: string;
}
export interface CmafEncryption {
    /** An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constan */
    ConstantInitializationVector?: string;
    EncryptionMethod?: 'SAMPLE_AES' | 'AES_CTR';
    /** Time (in seconds) between each encryption key rotation. */
    KeyRotationIntervalSeconds?: number;
    SpekeKeyProvider: any;
}
export interface StreamSelection {
    /** The maximum video bitrate (bps) to include in output. */
    MaxVideoBitsPerSecond?: number;
    /** The minimum video bitrate (bps) to include in output. */
    MinVideoBitsPerSecond?: number;
    /** A directive that determines the order of streams in the output. */
    StreamOrder?: 'ORIGINAL' | 'VIDEO_BITRATE_ASCENDING' | 'VIDEO_BITRATE_DESCENDING';
}
export interface CmafPackageCreateOrUpdateParameters {
    Encryption?: CmafEncryption;
    /** A list of HLS manifest configurations */
    HlsManifests?: any[];
    /** Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration. */
    SegmentDurationSeconds?: number;
    /** An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId. */
    SegmentPrefix?: string;
    StreamSelection?: StreamSelection;
}
export interface DashEncryption {
    /** Time (in seconds) between each encryption key rotation. */
    KeyRotationIntervalSeconds?: number;
    SpekeKeyProvider: any;
}
export interface DashPackage {
    AdTriggers?: 'SPLICE_INSERT' | 'BREAK' | 'PROVIDER_ADVERTISEMENT' | 'DISTRIBUTOR_ADVERTISEMENT' | 'PROVIDER_PLACEMENT_OPPORTUNITY' | 'DISTRIBUTOR_PLACEMENT_OPPORTUNITY' | 'PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY' | 'DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY'[];
    AdsOnDeliveryRestrictions?: 'NONE' | 'RESTRICTED' | 'UNRESTRICTED' | 'BOTH';
    Encryption?: DashEncryption;
    /** When enabled, an I-Frame only stream will be included in the output. */
    IncludeIframeOnlyStream?: boolean;
    /** Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to */
    ManifestLayout?: 'FULL' | 'COMPACT' | 'DRM_TOP_LEVEL_COMPACT';
    /** Time window (in seconds) contained in each manifest. */
    ManifestWindowSeconds?: number;
    /** Minimum duration (in seconds) that a player will buffer media before starting the presentation. */
    MinBufferTimeSeconds?: number;
    /** Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD). */
    MinUpdatePeriodSeconds?: number;
    /** A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content wil */
    PeriodTriggers?: 'ADS'[];
    /** The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to "HBBTV_1_5", HbbTV 1.5 compliant output is enabled. When set to "DVB-DASH_2014", DVB-DASH 2014 compliant output is enabled. */
    Profile?: 'NONE' | 'HBBTV_1_5' | 'HYBRIDCAST' | 'DVB_DASH_2014';
    /** Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration. */
    SegmentDurationSeconds?: number;
    /** Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media */
    SegmentTemplateFormat?: 'NUMBER_WITH_TIMELINE' | 'TIME_WITH_TIMELINE' | 'NUMBER_WITH_DURATION';
    StreamSelection?: StreamSelection;
    /** Duration (in seconds) to delay live content before presentation. */
    SuggestedPresentationDelaySeconds?: number;
    /** Determines the type of UTCTiming included in the Media Presentation Description (MPD) */
    UtcTiming?: 'NONE' | 'HTTP-HEAD' | 'HTTP-ISO' | 'HTTP-XSDATE';
    /** Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO, HTTP-HEAD or HTTP-XSDATE */
    UtcTimingUri?: string;
}
export interface HlsEncryption {
    /** A constant initialization vector for encryption (optional). When not specified the initialization vector will be periodically rotated. */
    ConstantInitializationVector?: string;
    /** The encryption method to use. */
    EncryptionMethod?: 'AES_128' | 'SAMPLE_AES';
    /** Interval (in seconds) between each encryption key rotation. */
    KeyRotationIntervalSeconds?: number;
    /** When enabled, the EXT-X-KEY tag will be repeated in output manifests. */
    RepeatExtXKey?: boolean;
    SpekeKeyProvider: any;
}
export interface HlsPackage {
    /** This setting controls how ad markers are included in the packaged OriginEndpoint. "NONE" will omit all SCTE-35 ad markers from the output. "PASSTHROUGH" causes the manifest to contain a copy of the SC */
    AdMarkers?: 'NONE' | 'SCTE35_ENHANCED' | 'PASSTHROUGH' | 'DATERANGE';
    AdTriggers?: 'SPLICE_INSERT' | 'BREAK' | 'PROVIDER_ADVERTISEMENT' | 'DISTRIBUTOR_ADVERTISEMENT' | 'PROVIDER_PLACEMENT_OPPORTUNITY' | 'DISTRIBUTOR_PLACEMENT_OPPORTUNITY' | 'PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY' | 'DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY'[];
    AdsOnDeliveryRestrictions?: 'NONE' | 'RESTRICTED' | 'UNRESTRICTED' | 'BOTH';
    Encryption?: HlsEncryption;
    /** When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output. */
    IncludeDvbSubtitles?: boolean;
    /** When enabled, an I-Frame only stream will be included in the output. */
    IncludeIframeOnlyStream?: boolean;
    /** The HTTP Live Streaming (HLS) playlist type. When either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist. */
    PlaylistType?: 'NONE' | 'EVENT' | 'VOD';
    /** Time window (in seconds) contained in each parent manifest. */
    PlaylistWindowSeconds?: number;
    /** The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds usi */
    ProgramDateTimeIntervalSeconds?: number;
    /** Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration. */
    SegmentDurationSeconds?: number;
    StreamSelection?: StreamSelection;
    /** When enabled, audio streams will be placed in rendition groups in the output. */
    UseAudioRenditionGroup?: boolean;
}
export interface MssEncryption {
    SpekeKeyProvider: any;
}
export interface MssPackage {
    Encryption?: MssEncryption;
    /** The time window (in seconds) contained in each manifest. */
    ManifestWindowSeconds?: number;
    /** The duration (in seconds) of each segment. */
    SegmentDurationSeconds?: number;
    StreamSelection?: StreamSelection;
}
/** the option to configure log subscription. */
export interface ConfigureLogsInput {
    /** The ID of the channel to log subscription. */
    Id: string;
    EgressAccessLogs?: EgressAccessLogs;
    IngressAccessLogs?: IngressAccessLogs;
}
/** A new Channel configuration. */
export interface CreateChannelInput {
    /** The ID of the Channel. The ID must be unique within the region and it cannot be changed after a Channel is created. */
    Id: string;
    /** A short text description of the Channel. */
    Description?: string;
    Tags?: Record<string, string>;
}
/** Configuration parameters used to create a new HarvestJob. */
export interface CreateHarvestJobInput {
    /** The end of the time-window which will be harvested */
    EndTime: string;
    /** The ID of the HarvestJob. The ID must be unique within the region and it cannot be changed after the HarvestJob is submitted */
    Id: string;
    /** The ID of the OriginEndpoint that the HarvestJob will harvest from. This cannot be changed after the HarvestJob is submitted. */
    OriginEndpointId: string;
    S3Destination: S3Destination;
    /** The start of the time-window which will be harvested */
    StartTime: string;
}
/** Configuration parameters used to create a new OriginEndpoint. */
export interface CreateOriginEndpointInput {
    /** The ID of the Channel that the OriginEndpoint will be associated with. This cannot be changed after the OriginEndpoint is created. */
    ChannelId: string;
    /** The ID of the OriginEndpoint. The ID must be unique within the region and it cannot be changed after the OriginEndpoint is created. */
    Id: string;
    Authorization?: Authorization;
    CmafPackage?: CmafPackageCreateOrUpdateParameters;
    DashPackage?: DashPackage;
    /** A short text description of the OriginEndpoint. */
    Description?: string;
    HlsPackage?: HlsPackage;
    /** A short string that will be used as the filename of the OriginEndpoint URL (defaults to "index"). */
    ManifestName?: string;
    MssPackage?: MssPackage;
    /** Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint may by requested, pursuant to any other form of access control. If set to DENY, the OriginE */
    Origination?: 'ALLOW' | 'DENY';
    /** Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint. */
    StartoverWindowSeconds?: number;
    Tags?: Record<string, string>;
    /** Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint. */
    TimeDelaySeconds?: number;
    /** A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint. */
    Whitelist?: string[];
}
export interface DeleteChannelInput {
    /** The ID of the Channel to delete. */
    Id: string;
}
export interface DeleteOriginEndpointInput {
    /** The ID of the OriginEndpoint to delete. */
    Id: string;
}
export interface DescribeChannelInput {
    /** The ID of a Channel. */
    Id: string;
}
export interface DescribeHarvestJobInput {
    /** The ID of the HarvestJob. */
    Id: string;
}
export interface DescribeOriginEndpointInput {
    /** The ID of the OriginEndpoint. */
    Id: string;
}
export interface ListChannelsInput {
    /** Upper bound on number of records to return. */
    MaxResults?: number;
    /** A token used to resume pagination from the end of a previous request. */
    NextToken?: string;
}
export interface ListHarvestJobsInput {
    /** When specified, the request will return only HarvestJobs associated with the given Channel ID. */
    IncludeChannelId?: string;
    /** When specified, the request will return only HarvestJobs in the given status. */
    IncludeStatus?: string;
    /** The upper bound on the number of records to return. */
    MaxResults?: number;
    /** A token used to resume pagination from the end of a previous request. */
    NextToken?: string;
}
export interface ListOriginEndpointsInput {
    /** When specified, the request will return only OriginEndpoints associated with the given Channel ID. */
    ChannelId?: string;
    /** The upper bound on the number of records to return. */
    MaxResults?: number;
    /** A token used to resume pagination from the end of a previous request. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    ResourceArn: string;
}
export interface RotateChannelCredentialsInput {
    /** The ID of the channel to update. */
    Id: string;
}
export interface RotateIngestEndpointCredentialsInput {
    /** The ID of the channel the IngestEndpoint is on. */
    Id: string;
    /** The id of the IngestEndpoint whose credentials should be rotated */
    IngestEndpointId: string;
}
export interface TagResourceInput {
    ResourceArn: string;
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    ResourceArn: string;
    /** The key(s) of tag to be deleted */
    TagKeys: string[];
}
/** Configuration parameters used to update the Channel. */
export interface UpdateChannelInput {
    /** The ID of the Channel to update. */
    Id: string;
    /** A short text description of the Channel. */
    Description?: string;
}
/** Configuration parameters used to update an existing OriginEndpoint. */
export interface UpdateOriginEndpointInput {
    /** The ID of the OriginEndpoint to update. */
    Id: string;
    Authorization?: Authorization;
    CmafPackage?: CmafPackageCreateOrUpdateParameters;
    DashPackage?: DashPackage;
    /** A short text description of the OriginEndpoint. */
    Description?: string;
    HlsPackage?: HlsPackage;
    /** A short string that will be appended to the end of the Endpoint URL. */
    ManifestName?: string;
    MssPackage?: MssPackage;
    /** Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint may by requested, pursuant to any other form of access control. If set to DENY, the OriginE */
    Origination?: 'ALLOW' | 'DENY';
    /** Maximum duration (in seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint. */
    StartoverWindowSeconds?: number;
    /** Amount of delay (in seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint. */
    TimeDelaySeconds?: number;
    /** A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint. */
    Whitelist?: string[];
}
/** MediaPackage service binding for Step Functions SDK integrations. */
export declare class MediaPackage {
    constructor();
    configureLogs<T>(params: ConfigureLogsInput): Promise<T>;
    createChannel<T>(params: CreateChannelInput): Promise<T>;
    createHarvestJob<T>(params: CreateHarvestJobInput): Promise<T>;
    createOriginEndpoint<T>(params: CreateOriginEndpointInput): Promise<T>;
    deleteChannel<T>(params: DeleteChannelInput): Promise<T>;
    deleteOriginEndpoint<T>(params: DeleteOriginEndpointInput): Promise<T>;
    describeChannel<T>(params: DescribeChannelInput): Promise<T>;
    describeHarvestJob<T>(params: DescribeHarvestJobInput): Promise<T>;
    describeOriginEndpoint<T>(params: DescribeOriginEndpointInput): Promise<T>;
    listChannels<T>(params: ListChannelsInput): Promise<T>;
    listHarvestJobs<T>(params: ListHarvestJobsInput): Promise<T>;
    listOriginEndpoints<T>(params: ListOriginEndpointsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    rotateChannelCredentials<T>(params: RotateChannelCredentialsInput): Promise<T>;
    rotateIngestEndpointCredentials<T>(params: RotateIngestEndpointCredentialsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateChannel<T>(params: UpdateChannelInput): Promise<T>;
    updateOriginEndpoint<T>(params: UpdateOriginEndpointInput): Promise<T>;
}
//# sourceMappingURL=MediaPackage.d.ts.map