import * as core from "@terrascript/core";
export interface ScheduleArgs extends core.SchemaArgs {
    frequency: string | core.StringOut;
}
export declare class Schedule extends core.Schema<ScheduleArgs> {
    frequency: string | core.StringOut;
}
export interface FilterArgs extends core.SchemaArgs {
    prefix?: string | core.StringOut;
}
export declare class Filter extends core.Schema<FilterArgs> {
    prefix?: string | core.StringOut;
}
export interface SseS3Args extends core.SchemaArgs {
}
export declare class SseS3 extends core.Schema<SseS3Args> {
}
export interface SseKmsArgs extends core.SchemaArgs {
    keyId: string | core.StringOut;
}
export declare class SseKms extends core.Schema<SseKmsArgs> {
    keyId: string | core.StringOut;
}
export interface EncryptionArgs extends core.SchemaArgs {
    sseKms?: SseKms;
    sseS3?: SseS3;
}
export declare class Encryption extends core.Schema<EncryptionArgs> {
    sseKms?: SseKms;
    sseS3?: SseS3;
}
export interface BucketArgs extends core.SchemaArgs {
    accountId?: string | core.StringOut;
    bucketArn: string | core.StringOut;
    encryption?: Encryption;
    format: string | core.StringOut;
    prefix?: string | core.StringOut;
}
export declare class Bucket extends core.Schema<BucketArgs> {
    accountId?: string | core.StringOut;
    bucketArn: string | core.StringOut;
    encryption?: Encryption;
    format: string | core.StringOut;
    prefix?: string | core.StringOut;
}
export interface DestinationArgs extends core.SchemaArgs {
    bucket: Bucket;
}
export declare class Destination extends core.Schema<DestinationArgs> {
    bucket: Bucket;
}
export interface BucketInventoryArgs extends core.ResourceArgs {
    bucket: string | core.StringOut;
    destination: Destination;
    enabled?: boolean | core.BooleanOut;
    filter?: Filter;
    includedObjectVersions: string | core.StringOut;
    name: string | core.StringOut;
    optionalFields?: core.Array<string> | core.ArrayOut<core.StringOut>;
    schedule: Schedule;
}
export declare class BucketInventory extends core.Resource<BucketInventoryArgs> {
    bucket: string | core.StringOut;
    destination: Destination;
    enabled?: boolean | core.BooleanOut;
    filter?: Filter;
    id: string | core.StringOut;
    includedObjectVersions: string | core.StringOut;
    name: string | core.StringOut;
    optionalFields?: core.Array<string> | core.ArrayOut<core.StringOut>;
    schedule: Schedule;
    constructor(name: string, args?: BucketInventoryArgs);
    getNamespace(): string;
}
//# sourceMappingURL=bucket_inventory.d.ts.map