/**
 * Comprehensive error types for LIFX LAN protocol operations.
 */
/**
 * Base class for all LIFX protocol errors.
 */
export declare class LifxError extends Error {
    readonly context: Record<string, unknown>;
    constructor(message: string, context?: Record<string, unknown>);
    toJSON(): {
        name: string;
        message: string;
        context: Record<string, unknown>;
        stack: string | undefined;
    };
}
/**
 * Thrown when a network operation times out.
 */
export declare class TimeoutError extends LifxError {
    readonly timeoutMs: number;
    readonly operation: string;
    constructor(timeoutMs: number, operation?: string);
}
/**
 * Thrown when a device returns an unhandled command response.
 */
export declare class UnhandledCommandError extends LifxError {
    readonly commandType: number;
    readonly deviceSerial: string | undefined;
    constructor(commandType: number, deviceSerial?: string);
}
/**
 * Thrown when there's a conflict in message routing.
 */
export declare class MessageConflictError extends LifxError {
    readonly key: string;
    readonly source: number | undefined;
    constructor(key: string, source?: number);
}
/**
 * Thrown when router runs out of available source IDs.
 */
export declare class SourceExhaustionError extends LifxError {
    constructor();
}
/**
 * Thrown when attempting to use a disposed client.
 */
export declare class DisposedClientError extends LifxError {
    readonly source: number;
    constructor(source: number);
}
/**
 * Thrown when an operation is aborted via AbortSignal.
 */
export declare class AbortError extends LifxError {
    readonly operation: string;
    constructor(operation?: string);
}
/**
 * Thrown when validation of input parameters fails.
 */
export declare class ValidationError extends LifxError {
    readonly parameter: string;
    readonly value: unknown;
    readonly reason: string | undefined;
    constructor(parameter: string, value: unknown, reason?: string);
}
//# sourceMappingURL=errors.d.ts.map