import * as core from "@terrascript/core";
export interface ScopeArgs extends core.SchemaArgs {
    complianceResourceId?: string | core.StringOut;
    complianceResourceTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tagKey?: string | core.StringOut;
    tagValue?: string | core.StringOut;
}
export declare class Scope extends core.Schema<ScopeArgs> {
    complianceResourceId?: string | core.StringOut;
    complianceResourceTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    tagKey?: string | core.StringOut;
    tagValue?: string | core.StringOut;
}
export interface CustomPolicyDetailsArgs extends core.SchemaArgs {
    enableDebugLogDelivery?: boolean | core.BooleanOut;
    policyRuntime: string | core.StringOut;
    policyText: string | core.StringOut;
}
export declare class CustomPolicyDetails extends core.Schema<CustomPolicyDetailsArgs> {
    enableDebugLogDelivery?: boolean | core.BooleanOut;
    policyRuntime: string | core.StringOut;
    policyText: string | core.StringOut;
}
export interface SourceDetailArgs extends core.SchemaArgs {
    eventSource?: string | core.StringOut;
    maximumExecutionFrequency?: string | core.StringOut;
    messageType?: string | core.StringOut;
}
export declare class SourceDetail extends core.Schema<SourceDetailArgs> {
    eventSource?: string | core.StringOut;
    maximumExecutionFrequency?: string | core.StringOut;
    messageType?: string | core.StringOut;
}
export interface SourceArgs extends core.SchemaArgs {
    customPolicyDetails?: CustomPolicyDetails;
    owner: string | core.StringOut;
    sourceDetail?: core.Array<SourceDetail> | core.ArrayOut<SourceDetail>;
    sourceIdentifier?: string | core.StringOut;
}
export declare class Source extends core.Schema<SourceArgs> {
    customPolicyDetails?: CustomPolicyDetails;
    owner: string | core.StringOut;
    sourceDetail?: core.Array<SourceDetail> | core.ArrayOut<SourceDetail>;
    sourceIdentifier?: string | core.StringOut;
}
export interface ConfigRuleArgs extends core.ResourceArgs {
    description?: string | core.StringOut;
    inputParameters?: string | core.StringOut;
    maximumExecutionFrequency?: string | core.StringOut;
    name: string | core.StringOut;
    scope?: Scope;
    source: Source;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class ConfigRule extends core.Resource<ConfigRuleArgs> {
    arn: string | core.StringOut;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    inputParameters?: string | core.StringOut;
    maximumExecutionFrequency?: string | core.StringOut;
    name: string | core.StringOut;
    ruleId: string | core.StringOut;
    scope?: Scope;
    source: Source;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: ConfigRuleArgs);
    getNamespace(): string;
}
//# sourceMappingURL=config_rule.d.ts.map