import { EventEmitter } from 'events';
import { OSCEndpointInfo, OSCEndpointConfig, OSCEndpointStatus, OSCMessage, OSCError } from '../types/index';
import { MessageBuffer } from './buffer';
export interface OSCEndpointEvents {
    message: (message: OSCMessage) => void;
    error: (error: OSCError) => void;
    statusChange: (status: OSCEndpointStatus) => void;
}
export declare class OSCEndpoint extends EventEmitter {
    private readonly id;
    private readonly port;
    private readonly bufferSize;
    private readonly addressFilters;
    private readonly createdAt;
    private socket;
    private status;
    private messageBuffer;
    private messageCount;
    constructor(id: string, config: OSCEndpointConfig);
    startListening(): Promise<void>;
    stopListening(): Promise<void>;
    getStatus(): OSCEndpointInfo;
    getMessageBuffer(): MessageBuffer;
    getId(): string;
    getPort(): number;
    isActive(): boolean;
    private handleIncomingMessage;
    private handleSocketError;
    private isValidPort;
    private getSuggestedPorts;
}
export declare function createOSCEndpoint(id: string, config: OSCEndpointConfig): OSCEndpoint;
//# sourceMappingURL=endpoint.d.ts.map