import { Event } from "../../../base/common/event.js";
import { URI } from "../../../base/common/uri.js";
import { ILogger, type DidChangeLoggersEvent, type ILoggerOptions, type ILoggerResource, type LogLevel } from "./log.js";
export declare const ILogService: import("../../instantiation/common/instantiation.js").ServiceIdentifier<ILogService>;
export interface ILogService extends ILogger {
    readonly _serviceBrand: undefined;
}
export declare const ILoggerService: import("../../instantiation/common/instantiation.js").ServiceIdentifier<ILoggerService>;
export interface ILoggerService {
    readonly _serviceBrand: undefined;
    createLogger(resource: URI, options?: ILoggerOptions): ILogger;
    createLogger(id: string, options?: Omit<ILoggerOptions, "id">): ILogger;
    getLogger(resourceOrId: URI | string): ILogger | undefined;
    readonly onDidChangeLogLevel: Event<LogLevel | [
        URI,
        LogLevel
    ]>;
    setLogLevel(level: LogLevel): void;
    setLogLevel(resource: URI, level: LogLevel): void;
    getLogLevel(resource?: URI): LogLevel;
    readonly onDidChangeVisibility: Event<[
        URI,
        boolean
    ]>;
    setVisibility(resourceOrId: URI | string, visible: boolean): void;
    readonly onDidChangeLoggers: Event<DidChangeLoggersEvent>;
    registerLogger(resource: ILoggerResource): void;
    deregisterLogger(idOrResource: URI | string): void;
    getRegisteredLoggers(): Iterable<ILoggerResource>;
    getRegisteredLogger(resource: URI): ILoggerResource | undefined;
}
