import * as core from "@terrascript/core";
export interface ConstraintsArgs extends core.SchemaArgs {
    encryptionContextEquals?: core.Map<string, string> | core.MapOut<core.StringOut>;
    encryptionContextSubset?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Constraints extends core.Schema<ConstraintsArgs> {
    encryptionContextEquals?: core.Map<string, string> | core.MapOut<core.StringOut>;
    encryptionContextSubset?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export interface GrantArgs extends core.ResourceArgs {
    constraints?: core.Array<Constraints> | core.ArrayOut<Constraints>;
    grantCreationTokens?: core.Array<string> | core.ArrayOut<core.StringOut>;
    granteePrincipal: string | core.StringOut;
    keyId: string | core.StringOut;
    name?: string | core.StringOut;
    operations: core.Array<string> | core.ArrayOut<core.StringOut>;
    retireOnDelete?: boolean | core.BooleanOut;
    retiringPrincipal?: string | core.StringOut;
}
export declare class Grant extends core.Resource<GrantArgs> {
    constraints?: core.Array<Constraints> | core.ArrayOut<Constraints>;
    grantCreationTokens?: core.Array<string> | core.ArrayOut<core.StringOut>;
    grantId: string | core.StringOut;
    grantToken: string | core.StringOut;
    granteePrincipal: string | core.StringOut;
    id: string | core.StringOut;
    keyId: string | core.StringOut;
    name?: string | core.StringOut;
    operations: core.Array<string> | core.ArrayOut<core.StringOut>;
    retireOnDelete?: boolean | core.BooleanOut;
    retiringPrincipal?: string | core.StringOut;
    constructor(name: string, args?: GrantArgs);
    getNamespace(): string;
}
//# sourceMappingURL=grant.d.ts.map