import { InlineMappingTemplateProvider, MappingTemplateType, S3Asset, S3MappingFunctionCodeProvider, S3MappingTemplateProvider, AssetProvider } from '@aws-amplify/graphql-transformer-interfaces';
import { Construct } from 'constructs';
export declare class S3MappingFunctionCode implements S3MappingFunctionCodeProvider {
    readonly type = MappingTemplateType.S3_LOCATION;
    private asset?;
    private fileName;
    private filePath;
    constructor(fileName: string, filePath: string);
    bind(scope: Construct, assetProvider: AssetProvider): S3Asset;
}
export declare class S3MappingJSResolverFunctionCode implements S3MappingTemplateProvider {
    readonly type = MappingTemplateType.S3_LOCATION;
    asset?: S3Asset;
    private content;
    readonly name: string;
    constructor(content: string, name?: string);
    bind(scope: Construct, assetProvider: AssetProvider): string;
    getTemplateHash(): string;
}
export declare class S3MappingTemplate implements S3MappingTemplateProvider {
    private content;
    private name;
    private asset?;
    readonly type = MappingTemplateType.S3_LOCATION;
    static fromInlineTemplate(code: string, templateName?: string): S3MappingTemplate;
    constructor(content: string, name?: string);
    bind(scope: Construct, assetProvider: AssetProvider): string;
    getTemplateHash(): string;
    substituteValues(values: Record<string, string | number>): void;
}
export declare class InlineTemplate implements InlineMappingTemplateProvider {
    private content;
    readonly type = MappingTemplateType.INLINE;
    constructor(content: string);
    bind(): string;
    getTemplateHash(): string;
}
export declare class MappingTemplate {
    static inlineTemplateFromString(template: string): InlineTemplate;
    static s3MappingTemplateFromString(template: string, templateName: string): S3MappingTemplate;
    static s3MappingFunctionCodeFromString(template: string, templateName: string): S3MappingJSResolverFunctionCode;
}
//# sourceMappingURL=template-asset.d.ts.map