import {IOGateway} from '../../../gateway';

export type FilePublisherConfig = {
    location: string,
    append?: boolean,
    status?: boolean
}

export interface FileAppender {
    open(location: string, append?: boolean): Promise<this>

    write(update: IOGateway.Metrics.Update): Promise<this>
}

export const name = 'file';

export function jsonFileAppender(logger: IOGateway.Logging.Logger): FileAppender;

export function create(config: FilePublisherConfig, logger: IOGateway.Logging.Logger): (msg: 'start' | 'stop' | IOGateway.Metrics.Update) => Promise<unknown>;
