export declare type ObjectQueueHandler<T> = (object: T) => void;
export declare type ObjectQueueFilter<T> = (object: T) => boolean;
export declare abstract class ObjectQueue<T> {
    private channelToPendingObjectsMap;
    add(object: T): void;
    pause(channel: string): void;
    resume(channel: string, filter?: ObjectQueueFilter<T>): void;
    protected abstract emit(object: T): void;
    protected abstract resolveChannel(_object: T): string;
}
