import type { BasePointRecord, CesiumGpuPointLayerDescriptor, CesiumGpuPointLayerFrameState, PointLayerSpriteSource, PreparedPointRecord, SpriteTextureAtlas } from './types.js';
/**
 * Reusable Cesium primitive wrapper that renders packed points from RGBA float textures.
 */
export declare class CesiumPointTextureLayer<TInput extends BasePointRecord, TPrepared extends PreparedPointRecord> {
    readonly primitive: Cesium.Primitive;
    show: boolean;
    private readonly dataTextureName;
    private readonly dataTextureDimensionName;
    private readonly motionTextureName;
    private readonly nowSecondsName;
    private readonly maxExtrapolationSecondsName;
    private readonly spriteTextureName;
    private readonly rotationEnabledName;
    private readonly pointScale;
    private readonly minPointSize;
    private readonly maxPointSize;
    private readonly maxExtrapolationSeconds;
    private readonly cullDotThreshold;
    private readonly drawCommand;
    private readonly sampler;
    private readonly renderState;
    private readonly depthTestEnabled;
    private readonly indexAttributeName;
    private readonly indexAttributeLocation;
    private readonly shaderSources;
    private readonly descriptor;
    private readonly getNowSeconds;
    private readonly hasMotionTexture;
    private readonly rotationEnabled;
    private allPoints;
    private visibleCount;
    private visiblePointIds;
    private pointTextureLayout;
    private packedMainTextureData;
    private packedMotionTextureData;
    private pointTexture;
    private motionTexture;
    private pointIndexBuffer;
    private vertexArray;
    private commandContext;
    private shaderProgram;
    private shaderProgramUsesWebGL2;
    private uniformMap;
    private spriteTexture;
    private spriteTextureData;
    private spriteTextureDirty;
    private currentNowSeconds;
    private currentPixelRatio;
    private isDestroyedFlag;
    private resourcesDirty;
    private visibilityDirty;
    private pointsDirty;
    private spriteRequestId;
    private lastCameraDirection;
    constructor(descriptor: CesiumGpuPointLayerDescriptor<TInput, TPrepared>);
    setRecords(points: readonly TInput[]): void;
    setVisiblePointIds(visiblePointIds: Iterable<string> | null): void;
    setSprite(sprite: SpriteTextureAtlas | null): void;
    setSpriteSource(spriteSource: SpriteTextureAtlas | PointLayerSpriteSource | null): void;
    update(frameState: CesiumGpuPointLayerFrameState): void;
    isDestroyed(): boolean;
    destroy(): undefined;
    private buildUniformMap;
    private ensureShaderProgram;
    private ensureResources;
    private uploadSpriteTexture;
    private releaseGpuResources;
    private rebuildVisiblePoints;
    private resizeStorage;
    private uploadMainTextures;
}
/**
 * Backward-compatible export name kept from earlier internal API.
 */
export { CesiumPointTextureLayer as CesiumGpuPointLayer };
