import EventEmitter from 'node:events';
import { PathLike } from 'node:fs';
export type FTPTailOptions = {
    ftp: {
        timeout: number;
        encoding: 'base64' | 'hex' | 'binary' | 'utf8' | 'ascii' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'latin1' | undefined;
        host: string;
        port: number;
    };
    fetchInterval: number;
    tailLastBytes: number;
    log: ((...data: any) => unknown) | boolean;
};
export declare class FTPTail extends EventEmitter<{
    connected: [void];
    disconnect: [void];
    error: [any];
    line: [string];
}> {
    protected client: any;
    options: FTPTailOptions;
    filePath: string | null;
    fetchLoopActive: boolean;
    lastByteReceived: number | null;
    fetchLoopPromise: null | Promise<void>;
    log: (...data: any) => unknown;
    tmpFilePath: PathLike;
    constructor(options: Partial<FTPTailOptions>);
    setup(): Promise<void>;
    watch(filePath: string): Promise<void>;
    unwatch(): Promise<void>;
    fetchLoop(): Promise<void>;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    sleep(ms: number): Promise<void>;
}
