export interface Tag {
    /** Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive. */
    Key: string;
    /** Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive. */
    Value?: string;
}
export interface CorsRule {
    /** One or more response headers that you want users to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object). Each CORS rule must have at least one AllowedOrigi */
    AllowedOrigins: any[];
    /** Identifies an HTTP method that the origin that is specified in the rule is allowed to execute. Each CORS rule must contain at least one AllowedMethods and one AllowedOrigins element. */
    AllowedMethods?: any[];
    /** Specifies which headers are allowed in a preflight OPTIONS request through the Access-Control-Request-Headers header. Each header name that is specified in Access-Control-Request-Headers must have a c */
    AllowedHeaders: any[];
    /** The time in seconds that your browser caches the preflight response for the specified resource. A CORS rule can have only one MaxAgeSeconds element. */
    MaxAgeSeconds?: number;
    /** One or more headers in the response that you want users to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object). This element is optional for each rule. */
    ExposeHeaders?: any[];
}
export interface MetricPolicy {
    /** A setting to enable or disable metrics at the container level. */
    ContainerLevelMetrics: 'ENABLED' | 'DISABLED';
    /** A parameter that holds an array of rules that enable metrics at the object level. This parameter is optional, but if you choose to include it, you must also include at least one rule. By default, you  */
    MetricPolicyRules?: any[];
}
export interface CreateContainerInput {
    /** The name for the container. The name must be from 1 to 255 characters. Container names must be unique to your AWS account within a specific region. As an example, you could create a container named mo */
    ContainerName: string;
    /** An array of key:value pairs that you define. These values can be anything that you want. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific va */
    Tags?: Tag[];
}
export interface DeleteContainerInput {
    /** The name of the container to delete. */
    ContainerName: string;
}
export interface DeleteContainerPolicyInput {
    /** The name of the container that holds the policy. */
    ContainerName: string;
}
export interface DeleteCorsPolicyInput {
    /** The name of the container to remove the policy from. */
    ContainerName: string;
}
export interface DeleteLifecyclePolicyInput {
    /** The name of the container that holds the object lifecycle policy. */
    ContainerName: string;
}
export interface DeleteMetricPolicyInput {
    /** The name of the container that is associated with the metric policy that you want to delete. */
    ContainerName: string;
}
export interface DescribeContainerInput {
    /** The name of the container to query. */
    ContainerName?: string;
}
export interface GetContainerPolicyInput {
    /** The name of the container. */
    ContainerName: string;
}
export interface GetCorsPolicyInput {
    /** The name of the container that the policy is assigned to. */
    ContainerName: string;
}
export interface GetLifecyclePolicyInput {
    /** The name of the container that the object lifecycle policy is assigned to. */
    ContainerName: string;
}
export interface GetMetricPolicyInput {
    /** The name of the container that is associated with the metric policy. */
    ContainerName: string;
}
export interface ListContainersInput {
    /** Enter the maximum number of containers in the response. Use from 1 to 255 characters. */
    MaxResults?: number;
    /** Only if you used MaxResults in the first command, enter the token (which was included in the previous response) to obtain the next set of containers. This token is included in a response only if there */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) for the container. */
    Resource: string;
}
export interface PutContainerPolicyInput {
    /** The name of the container. */
    ContainerName: string;
    /** The contents of the policy, which includes the following: One Version tag One Statement tag that contains the standard tags for the policy. */
    Policy: string;
}
export interface PutCorsPolicyInput {
    /** The name of the container that you want to assign the CORS policy to. */
    ContainerName: string;
    /** The CORS policy to apply to the container. */
    CorsPolicy: CorsRule[];
}
export interface PutLifecyclePolicyInput {
    /** The name of the container that you want to assign the object lifecycle policy to. */
    ContainerName: string;
    /** The object lifecycle policy to apply to the container. */
    LifecyclePolicy: string;
}
export interface PutMetricPolicyInput {
    /** The name of the container that you want to add the metric policy to. */
    ContainerName: string;
    /** The metric policy that you want to associate with the container. In the policy, you must indicate whether you want MediaStore to send container-level metrics. You can also include up to five rules to  */
    MetricPolicy: MetricPolicy;
}
export interface StartAccessLoggingInput {
    /** The name of the container that you want to start access logging on. */
    ContainerName: string;
}
export interface StopAccessLoggingInput {
    /** The name of the container that you want to stop access logging on. */
    ContainerName: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) for the container. */
    Resource: string;
    /** An array of key:value pairs that you want to add to the container. You need to specify only the tags that you want to add or update. For example, suppose a container already has two tags (customer:Com */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) for the container. */
    Resource: string;
    /** A comma-separated list of keys for tags that you want to remove from the container. For example, if your container has two tags (customer:CompanyA and priority:High) and you want to remove one of the  */
    TagKeys: string[];
}
/** MediaStore service binding for Step Functions SDK integrations. */
export declare class MediaStore {
    constructor();
    createContainer<T>(params: CreateContainerInput): Promise<T>;
    deleteContainer<T>(params: DeleteContainerInput): Promise<T>;
    deleteContainerPolicy<T>(params: DeleteContainerPolicyInput): Promise<T>;
    deleteCorsPolicy<T>(params: DeleteCorsPolicyInput): Promise<T>;
    deleteLifecyclePolicy<T>(params: DeleteLifecyclePolicyInput): Promise<T>;
    deleteMetricPolicy<T>(params: DeleteMetricPolicyInput): Promise<T>;
    describeContainer<T>(params: DescribeContainerInput): Promise<T>;
    getContainerPolicy<T>(params: GetContainerPolicyInput): Promise<T>;
    getCorsPolicy<T>(params: GetCorsPolicyInput): Promise<T>;
    getLifecyclePolicy<T>(params: GetLifecyclePolicyInput): Promise<T>;
    getMetricPolicy<T>(params: GetMetricPolicyInput): Promise<T>;
    listContainers<T>(params: ListContainersInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putContainerPolicy<T>(params: PutContainerPolicyInput): Promise<T>;
    putCorsPolicy<T>(params: PutCorsPolicyInput): Promise<T>;
    putLifecyclePolicy<T>(params: PutLifecyclePolicyInput): Promise<T>;
    putMetricPolicy<T>(params: PutMetricPolicyInput): Promise<T>;
    startAccessLogging<T>(params: StartAccessLoggingInput): Promise<T>;
    stopAccessLogging<T>(params: StopAccessLoggingInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=MediaStore.d.ts.map