import type { DispatchFunction } from "#ws";
import type { CachingOptions, Transformers, MockClient, Listeners } from "./typings/index.js";
export interface CompilerOptions<T extends Transformers<any>> {
    transformers?: T;
    transformClient?: boolean;
}
export declare class ListenerCompiler<C extends MockClient, T extends Transformers<C>> {
    #private;
    constructor(options?: CompilerOptions<T>);
    appendCachingHandlers(options: CachingOptions): this;
    addListener<L extends Listeners<C, T> = Listeners<C, T>, K extends (keyof L) & string = (keyof L) & string>(name: K, handler: L[K] & {}, once?: boolean): this;
    getCompilationOutput(): {
        handlers: {
            names: Array<string>;
            callbacks: Array<(...args: any) => any>;
        };
        stack: string;
    };
    clearStack(): void;
    getDispatchFunction(clientPointer: C, resumeInfoPointer: {
        url: string;
        id: string;
    }): DispatchFunction;
    addListenersFromObject(listeners: Listeners<C, T>): this;
}
//# sourceMappingURL=compiler.d.ts.map