import { Evented } from '../util/evented';
import { Layout, Transitionable, Transitioning, Properties } from './properties';
import type { FeatureState } from '../style-spec/expression';
import type { Bucket } from '../data/bucket';
import type Point from '../util/point';
import type { FeatureFilter } from '../style-spec/feature_filter';
import type { TransitionParameters, PropertyValue } from './properties';
import EvaluationParameters from './evaluation_parameters';
import type { CrossfadeParameters } from './evaluation_parameters';
import type Transform from '../geo/transform';
import type { LayerSpecification, FilterSpecification } from '../style-spec/types';
import type { CustomLayerInterface } from './style_layer/custom_style_layer';
import type Map from '../ui/map';
import type { StyleSetterOptions } from './style';
import { mat4 } from 'gl-matrix';
declare class StyleLayer extends Evented {
    id: string;
    metadata: unknown;
    type: string;
    source: string;
    sourceLayer: string | undefined | null;
    minzoom: number | undefined | null;
    maxzoom: number | undefined | null;
    filter: FilterSpecification | void;
    visibility: 'visible' | 'none' | void;
    _crossfadeParameters: CrossfadeParameters;
    _unevaluatedLayout: Layout<any>;
    readonly layout: unknown;
    _transitionablePaint: Transitionable<any>;
    _transitioningPaint: Transitioning<any>;
    readonly paint: unknown;
    _featureFilter: FeatureFilter;
    readonly queryRadius: (bucket: Bucket) => number;
    readonly queryIntersectsFeature: (queryGeometry: Array<Point>, feature: VectorTileFeature, featureState: FeatureState, geometry: Array<Array<Point>>, zoom: number, transform: Transform, pixelsToTileUnits: number, pixelPosMatrix: mat4) => boolean | number;
    readonly onAdd: ((map: Map) => void) | undefined | null;
    readonly onRemove: ((map: Map) => void) | undefined | null;
    constructor(layer: LayerSpecification | CustomLayerInterface, properties: Readonly<{
        layout?: Properties<any>;
        paint?: Properties<any>;
    }>);
    getCrossfadeParameters(): CrossfadeParameters;
    getLayoutProperty(name: string): any;
    setLayoutProperty(name: string, value: any, options?: StyleSetterOptions): void;
    getPaintProperty(name: string): unknown;
    setPaintProperty(name: string, value: unknown, options?: StyleSetterOptions): boolean;
    _handleSpecialPaintPropertyUpdate(_: string): void;
    _handleOverridablePaintPropertyUpdate<T, R>(name: string, oldValue: PropertyValue<T, R>, newValue: PropertyValue<T, R>): boolean;
    isHidden(zoom: number): boolean;
    updateTransitions(parameters: TransitionParameters): void;
    hasTransition(): boolean;
    recalculate(parameters: EvaluationParameters, availableImages: Array<string>): void;
    serialize(): any;
    _validate(validate: Function, key: string, name: string, value: unknown, options?: StyleSetterOptions): boolean;
    is3D(): boolean;
    isTileClipped(): boolean;
    hasOffscreenPass(): boolean;
    resize(): void;
    isStateDependent(): boolean;
}
export default StyleLayer;
//# sourceMappingURL=style_layer.d.ts.map