import * as core from "@terrascript/core";
export interface OwnerArgs extends core.SchemaArgs {
    displayName?: string | core.StringOut;
    id: string | core.StringOut;
}
export declare class Owner extends core.Schema<OwnerArgs> {
    displayName?: string | core.StringOut;
    id: string | core.StringOut;
}
export interface GranteeArgs extends core.SchemaArgs {
    displayName: string | core.StringOut;
    emailAddress?: string | core.StringOut;
    id?: string | core.StringOut;
    type: string | core.StringOut;
    uri?: string | core.StringOut;
}
export declare class Grantee extends core.Schema<GranteeArgs> {
    displayName: string | core.StringOut;
    emailAddress?: string | core.StringOut;
    id?: string | core.StringOut;
    type: string | core.StringOut;
    uri?: string | core.StringOut;
}
export interface GrantArgs extends core.SchemaArgs {
    grantee?: Grantee;
    permission: string | core.StringOut;
}
export declare class Grant extends core.Schema<GrantArgs> {
    grantee?: Grantee;
    permission: string | core.StringOut;
}
export interface AccessControlPolicyArgs extends core.SchemaArgs {
    grant?: core.Array<Grant> | core.ArrayOut<Grant>;
    owner: Owner;
}
export declare class AccessControlPolicy extends core.Schema<AccessControlPolicyArgs> {
    grant?: core.Array<Grant> | core.ArrayOut<Grant>;
    owner: Owner;
}
export interface BucketAclArgs extends core.ResourceArgs {
    accessControlPolicy?: AccessControlPolicy;
    acl?: string | core.StringOut;
    bucket: string | core.StringOut;
    expectedBucketOwner?: string | core.StringOut;
}
export declare class BucketAcl extends core.Resource<BucketAclArgs> {
    accessControlPolicy?: AccessControlPolicy;
    acl?: string | core.StringOut;
    bucket: string | core.StringOut;
    expectedBucketOwner?: string | core.StringOut;
    id: string | core.StringOut;
    constructor(name: string, args?: BucketAclArgs);
    getNamespace(): string;
}
//# sourceMappingURL=bucket_acl.d.ts.map