import type { Customization } from "../../common/types";
import { YMapLayerProps } from "../YMapLayer";
import { YMapComplexEntity } from "../YMapEnities";
/**
 * Types of underlay layers available in the default scheme.
 * Each layer is displayed on the map according to its zIndex.
 * By default, layers are displayed in the following order:
 * 1. ground
 * 2. buildings
 * 3. icons
 * 4. labels
 * @see https://yandex.ru/dev/jsapi30/doc/en/dg/concepts/general#source-prepared
 */
type YMapDefaultSchemeLayerType = "ground" | "buildings" | "icons" | "labels";
/**
 * YMapDefaultSchemeLayer props
 */
type YMapDefaultSchemeLayerProps = {
    /**
         * Should show layers
         * @deprecated use {@link YMapDefaultSchemeLayerProps}.layers instead
         */
    visible?: boolean;
    /** Tiles customization. */
    customization?: Customization;
    /**
         * Theme applied to the scheme
         * @deprecated use {@link YMapProps}.theme prop in {@link YMap} instead
         * */
    theme?: "dark" | "light";
    /** Name for source */
    source?: string;
    /** Layers parameters */
    layers?: Partial<Record<YMapDefaultSchemeLayerType, Partial<YMapLayerProps>>>;
    /**
         * Allow to clamp map zoom. If you want the layer to not lock zoom when it reaches
         * its maximum value, you can set this field to false.
         * This may be necessary, for example, when your own layers are working at scales greater than 21.
         * ```js
         * const defaultSchemeLayer = new YMapDefaultSchemeLayer({clampMapZoom: false});
         * map.addChild(defaultSchemeLayer);
         * ```
         * See example https://yandex.ru/dev/jsapi30/doc/ru/examples/cases/over-zoom
         * @default true
         */
    clampMapZoom?: boolean;
};
declare const defaultProps: {
    visible: boolean;
    source: string;
    layers: {
        ground: {
            zIndex: number;
        };
        buildings: {
            zIndex: number;
        };
        icons: {
            zIndex: number;
        };
        labels: {
            zIndex: number;
        };
    };
    /** @deprecated use {@link DefaultProps}.layers instead */
    readonly layersInfo: Record<YMapDefaultSchemeLayerType, {
        type: string;
        zIndex: number;
    }>;
    clampMapZoom: boolean;
};
type DefaultProps = typeof defaultProps;
declare const MAP_TYPES: {
    map: string;
    admin: string;
    driving: string;
    transit: string;
    "future-map": string;
};
/**
 * Map default layer to show yandex scheme on map.
 *
 * @example
 * ```javascript
 * const defaultSchemeLayer = new YMapDefaultSchemeLayer({theme: 'dark'});
 * // add to map
 * map.addChild(defaultSchemeLayer);
 * // update
 * defaultSchemeLayer.update({theme: 'light'});
 * ```
 */
declare class YMapDefaultSchemeLayer extends YMapComplexEntity<YMapDefaultSchemeLayerProps, DefaultProps> {
    static defaultProps: {
        visible: boolean;
        source: string;
        layers: {
            ground: {
                zIndex: number;
            };
            buildings: {
                zIndex: number;
            };
            icons: {
                zIndex: number;
            };
            labels: {
                zIndex: number;
            };
        };
        /** @deprecated use {@link DefaultProps}.layers instead */
        readonly layersInfo: Record<YMapDefaultSchemeLayerType, {
            type: string;
            zIndex: number;
        }>;
        clampMapZoom: boolean;
    };
    private _dataSource?;
    private _layers;
    private _unwatchMapContext?;
    private _unwatchThemeContext?;
    private _coverageSubscription?;
    protected _onAttach(): void;
    protected _onDetach(): void;
    protected _onUpdate(propsDiff: Partial<YMapDefaultSchemeLayerProps>): void;
    private _getTileDataSourceProps;
    private _updateTheme;
}
export { YMapDefaultSchemeLayer, YMapDefaultSchemeLayerProps, MAP_TYPES };
