import { CloudFormationTemplate } from '../template/cloudformation-template';
export declare class AwsResource<T extends string, R extends Record<string, any>, A = undefined> {
    type: T;
    properties: R;
    attributes: A;
    logicalName?: string;
    condition?: string;
    dependsOn?: (AwsResource<any, any, any> | string)[];
    deletionPolicy?: CloudFormationTemplate['Resources'][string]['DeletionPolicy'];
    constructor(type: T, properties: R, attributes?: A);
    withLogicalName(logicalName: string): this;
    withCondition(condition: string): this;
    withDependency(...dependsOn: (AwsResource<any, any, any> | string)[]): this;
    withDeletionPolicy(deletionPolicy: CloudFormationTemplate['Resources'][string]['DeletionPolicy']): this;
    private static capitalize;
    template(): CloudFormationTemplate['Resources'][string];
    disableLowerCase(): AwsResource<T, R, A>;
}
