import * as core from "@terrascript/core";
export interface DatabaseArgs extends core.SchemaArgs {
    catalogId?: string | core.StringOut;
    name: string | core.StringOut;
}
export declare class Database extends core.Schema<DatabaseArgs> {
    catalogId?: string | core.StringOut;
    name: string | core.StringOut;
}
export interface TableArgs extends core.SchemaArgs {
    catalogId?: string | core.StringOut;
    databaseName: string | core.StringOut;
    name?: string | core.StringOut;
    wildcard?: boolean | core.BooleanOut;
}
export declare class Table extends core.Schema<TableArgs> {
    catalogId?: string | core.StringOut;
    databaseName: string | core.StringOut;
    name?: string | core.StringOut;
    wildcard?: boolean | core.BooleanOut;
}
export interface TableWithColumnsArgs extends core.SchemaArgs {
    catalogId?: string | core.StringOut;
    columnNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    databaseName: string | core.StringOut;
    excludedColumnNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    name: string | core.StringOut;
    wildcard?: boolean | core.BooleanOut;
}
export declare class TableWithColumns extends core.Schema<TableWithColumnsArgs> {
    catalogId?: string | core.StringOut;
    columnNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    databaseName: string | core.StringOut;
    excludedColumnNames?: core.Array<string> | core.ArrayOut<core.StringOut>;
    name: string | core.StringOut;
    wildcard?: boolean | core.BooleanOut;
}
export interface DataLocationArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    catalogId?: string | core.StringOut;
}
export declare class DataLocation extends core.Schema<DataLocationArgs> {
    arn: string | core.StringOut;
    catalogId?: string | core.StringOut;
}
export interface LfTagArgs extends core.SchemaArgs {
    catalogId?: string | core.StringOut;
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class LfTag extends core.Schema<LfTagArgs> {
    catalogId?: string | core.StringOut;
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface ExpressionArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Expression extends core.Schema<ExpressionArgs> {
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface LfTagPolicyArgs extends core.SchemaArgs {
    catalogId?: string | core.StringOut;
    expression: core.Array<Expression> | core.ArrayOut<Expression>;
    resourceType: string | core.StringOut;
}
export declare class LfTagPolicy extends core.Schema<LfTagPolicyArgs> {
    catalogId?: string | core.StringOut;
    expression: core.Array<Expression> | core.ArrayOut<Expression>;
    resourceType: string | core.StringOut;
}
export interface PermissionsArgs extends core.ResourceArgs {
    catalogId?: string | core.StringOut;
    catalogResource?: boolean | core.BooleanOut;
    dataLocation?: DataLocation;
    database?: Database;
    lfTag?: LfTag;
    lfTagPolicy?: LfTagPolicy;
    permissions: core.Array<string> | core.ArrayOut<core.StringOut>;
    permissionsWithGrantOption?: core.Array<string> | core.ArrayOut<core.StringOut>;
    principal: string | core.StringOut;
    table?: Table;
    tableWithColumns?: TableWithColumns;
}
export declare class Permissions extends core.Resource<PermissionsArgs> {
    catalogId?: string | core.StringOut;
    catalogResource?: boolean | core.BooleanOut;
    dataLocation?: DataLocation;
    database?: Database;
    id: string | core.StringOut;
    lfTag?: LfTag;
    lfTagPolicy?: LfTagPolicy;
    permissions: core.Array<string> | core.ArrayOut<core.StringOut>;
    permissionsWithGrantOption?: core.Array<string> | core.ArrayOut<core.StringOut>;
    principal: string | core.StringOut;
    table?: Table;
    tableWithColumns?: TableWithColumns;
    constructor(name: string, args?: PermissionsArgs);
    getNamespace(): string;
}
//# sourceMappingURL=permissions.d.ts.map