import type { ILayer, IStage, IGlobal, ILayerParams, LayerMode, ILayerHandlerContribution } from '../interface';
import type { ILayerService } from '../interface/core';
import { type ILayerFactory } from '../factory';
type ILayerHandlerFactory = (layerMode: LayerMode) => ILayerHandlerContribution;
export declare class DefaultLayerService implements ILayerService {
    private readonly layerFactory;
    private readonly layerHandlerFactory;
    layerMap: Map<IStage, ILayer[]>;
    staticLayerCountInEnv: number;
    dynamicLayerCountInEnv: number;
    inited: boolean;
    readonly global: IGlobal;
    static idprefix: string;
    static prefix_count: number;
    static GenerateLayerId(): string;
    constructor(global?: IGlobal, layerFactory?: ILayerFactory, layerHandlerFactory?: ILayerHandlerFactory);
    tryInit(): void;
    getStageLayer(stage: IStage): ILayer[];
    getRecommendedLayerType(layerMode?: LayerMode): LayerMode;
    getLayerHandler(layerMode: LayerMode): ILayerHandlerContribution;
    createLayer(stage: IStage, options?: Partial<ILayerParams>): ILayer;
    prepareStageLayer(stage: IStage): void;
    releaseLayer(stage: IStage, layer: ILayer): void;
    layerCount(stage: IStage): number;
    restLayerCount(stage: IStage): number;
    releaseStage(stage: IStage): void;
}
export {};
