import { Metrics } from '../api';
import { Logger } from '../../logging/api';

export type RestPublisherConfig = {
    endpoint: string | URL
    timeout?: number
    authentication?: { user: string, password: string } | {path?: string} | false
    headers?: HeadersInit
    fetch?: typeof fetch
    URL?: typeof URL
    Headers?: typeof Headers
}

export const name = 'rest';

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