export type LogLevel = "debug" | "info" | "warn" | "error" | "silent";
export interface LogEntry {
    readonly level: Exclude<LogLevel, "silent">;
    readonly category: string;
    readonly message: string;
    readonly timestamp: number;
    readonly data?: unknown;
}
export type LogSink = (entry: LogEntry) => void;
export declare class Logger {
    private level;
    private readonly sinks;
    private readonly lastEmitted;
    constructor(level?: LogLevel);
    setLevel(level: LogLevel): void;
    addSink(sink: LogSink): () => void;
    debug(category: string, message: string, data?: unknown): void;
    info(category: string, message: string, data?: unknown): void;
    warn(category: string, message: string, data?: unknown): void;
    error(category: string, message: string, data?: unknown): void;
    log(level: Exclude<LogLevel, "silent">, category: string, message: string, data?: unknown, rateLimitMs?: number): void;
}
//# sourceMappingURL=Logger.d.ts.map