import { IAttributeScale, IStyleAttribute, StyleScaleType } from '../layer/IStyleAttributeService';
import { IAttribute } from '../renderer/IAttribute';
import { AttributeType, IEncodeFeature, IFeatureRange, IStyleAttributeInitializationOptions, IVertexAttributeDescriptor } from './IStyleAttributeService';
export default class StyleAttribute implements IStyleAttribute {
    name: string;
    type: AttributeType;
    scale?: {
        type: StyleScaleType.CONSTANT;
        names: string[];
        field: string | string[];
        values: unknown[];
        defaultValues: unknown[];
        callback?: (...args: any[]) => [];
        scalers?: IAttributeScale[];
    };
    descriptor: IVertexAttributeDescriptor;
    featureBufferLayout: Array<{
        feature: IEncodeFeature;
        featureIdx: number;
        bufferOffset: number;
        length: number;
    }>;
    needRescale: boolean;
    needRemapping: boolean;
    needRegenerateVertices: boolean;
    featureRange: IFeatureRange;
    vertexAttribute: IAttribute;
    constructor(options: Partial<IStyleAttributeInitializationOptions>);
    setProps(options: Partial<IStyleAttributeInitializationOptions>): void;
    mapping(params: unknown[]): unknown[];
    resetDescriptor(): void;
    private defaultCallback;
}
