///
import { IArgdownRequest, IArgdownResponse, IArgdownLogger } from "@argdown/core";
import { IAsyncArgdownPlugin, IAsyncRequestHandler } from "../IAsyncArgdownPlugin";
export interface IFileNameProvider {
(settings: ISaveAsSettings, request: IArgdownRequest, response: IArgdownResponse): string;
}
export interface ISaveAsSettings {
dataKey?: string;
extension?: string;
outputDir?: string;
isRequestData?: boolean;
fileName?: string | IFileNameProvider;
}
declare module "@argdown/core" {
interface IArgdownRequest {
saveAs?: ISaveAsSettings;
}
interface IArgdownResponse {
outputPath?: string;
}
}
export declare class SaveAsFilePlugin implements IAsyncArgdownPlugin {
name: string;
defaults: ISaveAsSettings;
constructor(config: ISaveAsSettings);
getSettings(request: IArgdownRequest): ISaveAsSettings;
runAsync: IAsyncRequestHandler;
getFileName(file: string): string;
saveAsFile(data: string | Buffer, outputDir: string, fileName: string, extension: string, logger: IArgdownLogger): Promise;
}