/// <reference types="node" />
import Transport from 'winston-transport';
import { EventEmitter } from 'events';
/**
 * Heavily inspired by
 * https://github.com/winstonjs/winston-syslog/blob/master/lib/winston-syslog.js
 * https://github.com/kenperkins/winston-papertrail/blob/v2/test/papertrail-test.js
 * */
export interface PapertrailTransportOptions extends Transport.TransportStreamOptions {
    host: string;
    port: number;
    disableTls?: boolean;
    hostname?: string;
    program?: string;
    facility?: string;
    levels?: any;
    flushOnClose?: boolean;
    attemptsBeforeDecay?: number;
    maximumAttempts?: number;
    connectionDelay?: number;
    maxDelayBetweenReconnection?: number;
}
export declare class PapertrailTransport extends Transport {
    private options;
    connection: PapertrailConnection;
    private producer;
    get name(): string;
    constructor(options: PapertrailTransportOptions);
    log(info: any, callback: any): void;
    sendMessage(level: any, message: string, callback: any): void;
    close(): void;
}
export declare class PapertrailConnection extends EventEmitter {
    private options;
    private connectionDelay;
    private currentRetries;
    private totalRetries;
    private loggingEnabled;
    private _shutdown;
    private _erroring;
    private deferredQueue;
    private stream?;
    private socket?;
    constructor(options: PapertrailTransportOptions);
    connect(): void;
    write(text: string, callback: any): void;
    processBuffer(): void;
    onConnected(): void;
    onErrored(err: any): void;
    emitSilentError(err: Error): void;
    closeSockets(): void;
    close(): void;
}
