import * as core from "@terrascript/core";
export interface NotPrincipalsArgs extends core.SchemaArgs {
    identifiers: core.Array<string> | core.ArrayOut<core.StringOut>;
    type: string | core.StringOut;
}
export declare class NotPrincipals extends core.Schema<NotPrincipalsArgs> {
    identifiers: core.Array<string> | core.ArrayOut<core.StringOut>;
    type: string | core.StringOut;
}
export interface PrincipalsArgs extends core.SchemaArgs {
    identifiers: core.Array<string> | core.ArrayOut<core.StringOut>;
    type: string | core.StringOut;
}
export declare class Principals extends core.Schema<PrincipalsArgs> {
    identifiers: core.Array<string> | core.ArrayOut<core.StringOut>;
    type: string | core.StringOut;
}
export interface ConditionArgs extends core.SchemaArgs {
    test: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
    variable: string | core.StringOut;
}
export declare class Condition extends core.Schema<ConditionArgs> {
    test: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
    variable: string | core.StringOut;
}
export interface StatementArgs extends core.SchemaArgs {
    actions?: core.Array<string> | core.ArrayOut<core.StringOut>;
    condition?: core.Array<Condition> | core.ArrayOut<Condition>;
    effect?: string | core.StringOut;
    notActions?: core.Array<string> | core.ArrayOut<core.StringOut>;
    notPrincipals?: core.Array<NotPrincipals> | core.ArrayOut<NotPrincipals>;
    notResources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    principals?: core.Array<Principals> | core.ArrayOut<Principals>;
    resources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    sid?: string | core.StringOut;
}
export declare class Statement extends core.Schema<StatementArgs> {
    actions?: core.Array<string> | core.ArrayOut<core.StringOut>;
    condition?: core.Array<Condition> | core.ArrayOut<Condition>;
    effect?: string | core.StringOut;
    notActions?: core.Array<string> | core.ArrayOut<core.StringOut>;
    notPrincipals?: core.Array<NotPrincipals> | core.ArrayOut<NotPrincipals>;
    notResources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    principals?: core.Array<Principals> | core.ArrayOut<Principals>;
    resources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    sid?: string | core.StringOut;
}
export interface DsPolicyDocumentArgs {
    overrideJson?: string | core.StringOut;
    overridePolicyDocuments?: core.Array<string> | core.ArrayOut<core.StringOut>;
    policyId?: string | core.StringOut;
    sourceJson?: string | core.StringOut;
    sourcePolicyDocuments?: core.Array<string> | core.ArrayOut<core.StringOut>;
    statement?: core.Array<Statement> | core.ArrayOut<Statement>;
    version?: string | core.StringOut;
}
export declare class DsPolicyDocument extends core.Data<DsPolicyDocumentArgs> {
    id: string | core.StringOut;
    json: string | core.StringOut;
    overrideJson?: string | core.StringOut;
    overridePolicyDocuments?: core.Array<string> | core.ArrayOut<core.StringOut>;
    policyId?: string | core.StringOut;
    sourceJson?: string | core.StringOut;
    sourcePolicyDocuments?: core.Array<string> | core.ArrayOut<core.StringOut>;
    statement?: core.Array<Statement> | core.ArrayOut<Statement>;
    version?: string | core.StringOut;
    constructor(name: string, args?: DsPolicyDocumentArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_policy_document.d.ts.map