export interface RetentionPeriod {
    /** The period value for which the retention rule is to retain resources, measured in days. The supported retention periods are: EBS volumes: 1 - 7 days EBS snapshots and EBS-backed AMIs: 1 - 365 days */
    RetentionPeriodValue: number;
    /** The unit of time in which the retention period is measured. Currently, only DAYS is supported. */
    RetentionPeriodUnit: 'DAYS';
}
export interface Tag {
    /** The tag key. */
    Key: string;
    /** The tag value. */
    Value: string;
}
export interface ResourceTag {
    /** The tag key. */
    ResourceTagKey: string;
    /** The tag value. */
    ResourceTagValue?: string;
}
export interface UnlockDelay {
    /** The unlock delay period, measured in the unit specified for UnlockDelayUnit. */
    UnlockDelayValue: number;
    /** The unit of time in which to measure the unlock delay. Currently, the unlock delay can be measured only in days. */
    UnlockDelayUnit: 'DAYS';
}
export interface LockConfiguration {
    /** Information about the retention rule unlock delay. */
    UnlockDelay: UnlockDelay;
}
export interface CreateRuleInput {
    /** The resource type to be retained by the retention rule. Currently, only EBS volumes, EBS snapshots, and EBS-backed AMIs are supported. To retain EBS volumes, specify EBS_VOLUME. To retain EBS snapshot */
    ResourceType: 'EBS_SNAPSHOT' | 'EC2_IMAGE' | 'EBS_VOLUME';
    /** Information about the retention period for which the retention rule is to retain resources. */
    RetentionPeriod: RetentionPeriod;
    /** The retention rule description. */
    Description?: string;
    /** [Region-level retention rules only] Specifies the exclusion tags to use to identify resources that are to be excluded, or ignored, by a Region-level retention rule. Resources that have any of these ta */
    ExcludeResourceTags?: ResourceTag[];
    /** Information about the retention rule lock configuration. */
    LockConfiguration?: LockConfiguration;
    /** [Tag-level retention rules only] Specifies the resource tags to use to identify resources that are to be retained by a tag-level retention rule. For tag-level retention rules, only deleted resources,  */
    ResourceTags?: ResourceTag[];
    /** Information about the tags to assign to the retention rule. */
    Tags?: Tag[];
}
export interface DeleteRuleInput {
    /** The unique ID of the retention rule. */
    Identifier: string;
}
export interface GetRuleInput {
    /** The unique ID of the retention rule. */
    Identifier: string;
}
export interface ListRulesInput {
    /** The resource type retained by the retention rule. Only retention rules that retain the specified resource type are listed. Currently, only EBS volumes, EBS snapshots, and EBS-backed AMIs are supported */
    ResourceType: 'EBS_SNAPSHOT' | 'EC2_IMAGE' | 'EBS_VOLUME';
    /** [Region-level retention rules only] Information about the exclusion tags used to identify resources that are to be excluded, or ignored, by the retention rule. */
    ExcludeResourceTags?: ResourceTag[];
    /** The lock state of the retention rules to list. Only retention rules with the specified lock state are returned. */
    LockState?: 'locked' | 'pending_unlock' | 'unlocked';
    /** The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned NextToken value. */
    MaxResults?: number;
    /** The token for the next page of results. */
    NextToken?: string;
    /** [Tag-level retention rules only] Information about the resource tags used to identify resources that are retained by the retention rule. */
    ResourceTags?: ResourceTag[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the retention rule. */
    ResourceArn: string;
}
export interface LockRuleInput {
    /** The unique ID of the retention rule. */
    Identifier: string;
    /** Information about the retention rule lock configuration. */
    LockConfiguration: LockConfiguration;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the retention rule. */
    ResourceArn: string;
    /** Information about the tags to assign to the retention rule. */
    Tags: Tag[];
}
export interface UnlockRuleInput {
    /** The unique ID of the retention rule. */
    Identifier: string;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the retention rule. */
    ResourceArn: string;
    /** The tag keys of the tags to unassign. All tags that have the specified tag key are unassigned. */
    TagKeys: string[];
}
export interface UpdateRuleInput {
    /** The unique ID of the retention rule. */
    Identifier: string;
    /** The retention rule description. */
    Description?: string;
    /** [Region-level retention rules only] Specifies the exclusion tags to use to identify resources that are to be excluded, or ignored, by a Region-level retention rule. Resources that have any of these ta */
    ExcludeResourceTags?: ResourceTag[];
    /** [Tag-level retention rules only] Specifies the resource tags to use to identify resources that are to be retained by a tag-level retention rule. For tag-level retention rules, only deleted resources,  */
    ResourceTags?: ResourceTag[];
    /** This parameter is currently not supported. You can't update a retention rule's resource type after creation. */
    ResourceType?: 'EBS_SNAPSHOT' | 'EC2_IMAGE' | 'EBS_VOLUME';
    /** Information about the retention period for which the retention rule is to retain resources. */
    RetentionPeriod?: RetentionPeriod;
}
/** rbin service binding for Step Functions SDK integrations. */
export declare class rbin {
    constructor();
    createRule<T>(params: CreateRuleInput): Promise<T>;
    deleteRule<T>(params: DeleteRuleInput): Promise<T>;
    getRule<T>(params: GetRuleInput): Promise<T>;
    listRules<T>(params: ListRulesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    lockRule<T>(params: LockRuleInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    unlockRule<T>(params: UnlockRuleInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateRule<T>(params: UpdateRuleInput): Promise<T>;
}
//# sourceMappingURL=rbin.d.ts.map