/// 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; }