import { EventSpewer } from 'detritus-utils';
import { ClusterClient } from '../clusterclient';
import { BaseCollection } from '../collections/basecollection';
import { BaseSet } from '../collections/baseset';
import { ClusterIPCTypes } from './ipctypes';
export declare class ClusterProcessChild extends EventSpewer {
    readonly _restRequestsWaiting: BaseCollection<string | number, {
        promise: Promise<any>;
        reject: Function;
        resolve: Function;
    }>;
    readonly _shardsIdentifying: BaseSet<number>;
    readonly cluster: ClusterClient;
    clusterCount: number;
    clusterId: number;
    constructor(cluster: ClusterClient);
    get hasMultipleClusters(): boolean;
    onMessage(message: ClusterIPCTypes.IPCMessage | any): Promise<void>;
    send(message: ClusterIPCTypes.IPCMessage | any): Promise<void>;
    sendIPC(op: number, data?: any, request?: boolean, shard?: number): Promise<void>;
    sendIPCOrWarn(op: number, data?: any, request?: boolean, shard?: number): Promise<void>;
    broadcastEval(code: Function | string, ...args: any[]): Promise<Array<any>>;
    sendRestRequest(name: string, args?: Array<any>): Promise<any>;
    on(event: string | symbol, listener: (...args: any[]) => void): this;
    on(event: 'ipc', listener: (message: any) => any): this;
}
