import type CSVLayer from "@arcgis/core/layers/CSVLayer";
import type Layer from "@arcgis/core/layers/Layer";
import type { RendererUnion } from "@arcgis/core/renderers/types.js";
import type { FeatureSettings } from "../data/FeatureSettings.js";
import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
import type { Schema } from "../data/Schema.js";
import type { CSVLayerJson } from "../json/CSVLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
/**
 * Properties that can be passed into the constructor for
 * {@link CSVLayerExtension}.
 */
export interface CSVLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * The Esri CSVLayer object being extended.
     */
    layer?: CSVLayer | (CSVLayerJson & LayerProperties);
}
/**
 * Extends the capabilities of an Esri CSVLayer object.
 */
export declare class CSVLayerExtension extends LayerExtension<CSVLayerExtensionProperties> {
    get renderer(): RendererUnion;
    get hasFeatures(): boolean;
    get layer(): CSVLayer;
    get canChangeLabels(): boolean;
    get canChangeRenderer(): boolean;
    get canChangeDefinitionExpression(): boolean;
    /**
     * @inheritDoc
     */
    protected _capabilities(): QuerySourceCapabilities;
    protected _getSerializableProperties(): PropertyDefs<CSVLayerExtensionProperties>;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _createFeatureSettings(): FeatureSettings;
    protected _createSchema(): Schema;
}
