import { Message } from '@autorest/extension-base';
export interface TspWriteFileOptions {
    /**
     * @param filename Name of the file.
     */
    filename: string;
    /**
     * @param content Content of the file.
     */
    content: string;
    /**
     * @param sourceMap Source map that can be used to trace back source position in case of error.
     */
    sourceMap?: string;
    /**
     * @param artifactType Artifact type
     */
    artifactType?: string;
}
export interface TspHost {
    protectFiles(path: string): Promise<void>;
    readFile(filename: string): Promise<string>;
    getValue<T>(key: string): Promise<T | undefined>;
    listInputs(artifactType?: string): Promise<Array<string>>;
    writeFile({ filename, content, sourceMap, artifactType }: TspWriteFileOptions): void;
    message(message: Message): void;
    UpdateConfigurationFile(filename: string, content: string): void;
    GetConfigurationFile(filename: string): Promise<string>;
}
export declare class TspHostImpl implements TspHost {
    configurations: Record<string, any>;
    constructor(configurations: Record<string, any>);
    protectFiles(path: string): Promise<void>;
    readFile(filename: string): Promise<string>;
    getValue<T>(key: string): Promise<T | undefined>;
    listInputs(artifactType?: string): Promise<Array<string>>;
    writeFile({ filename, content, sourceMap, artifactType }: TspWriteFileOptions): void;
    UpdateConfigurationFile(filename: string, content: string): void;
    GetConfigurationFile(filename: string): Promise<string>;
    message(message: Message): void;
}
//# sourceMappingURL=tsp-host.d.ts.map