///
import Notifier from './notifier';
export declare class QueueInfo {
name?: string;
url?: string;
options?: any;
}
export declare function message(m: any): Buffer;
export declare type Ack = () => void;
export declare type Receiver = (buf: Buffer, ack?: Ack) => void;
export declare type Callback = (err?: Error) => void;
export interface ConnectionOptions {
retryDelay: number;
retryCount: number;
}
export interface SendOptions {
priority?: number;
}
export interface ReceiveOptions {
prefetch?: number;
consumerTag?: string;
priority?: number;
}
export interface ChannelListener {
opened?(channel: Channel): void;
closed?(channel: Channel): void;
error?(channel: Channel): void;
}
export declare class Channel extends Notifier implements ConnectionListener {
options: ConnectionOptions;
private connectionVar;
readonly connection: Connection;
readonly url: string;
private ch;
static instance(url: string, options?: ConnectionOptions): Channel;
static initial(connection: Connection, options?: ConnectionOptions): Channel;
queueAddIf(q: QueueInfo): Promise;
messageAdd(q: QueueInfo, m: Buffer, s?: SendOptions, f?: Callback): void;
receiverAdd(q: QueueInfo, r: Receiver, options?: ReceiveOptions): void;
consumerAdd(q: QueueInfo, r: Receiver, options?: ReceiveOptions): void;
close(): Promise;
protected listeningStarted(): void;
protected listeningStopped(): void;
private open(f);
private listen(f);
connected(connection: Connection): void;
disconnected(connection: Connection): void;
}
export interface ConnectionListener {
connected?(c: Connection): void;
disconnected?(c: Connection): void;
}
export declare class Connection extends Notifier {
private urlVar;
readonly url: string;
options: ConnectionOptions;
private channels;
conn: any;
static instance(url: string, options?: ConnectionOptions): Connection;
static initial(url: string, options?: ConnectionOptions): Connection;
channelAdd(channel: Channel): Channel;
channelDel(channel: Channel): Channel;
channelDelAll(): void;
close(): void;
protected listeningStarted(): void;
private connect(count);
}