import type { CoreMarkerTrackingController } from '../../../core/webXR/markerTracking/MarkerTrackingController';
import type { CoreMarkerTrackingControllerOptions } from '../../../core/webXR/markerTracking/Common';
export type MarkerTrackingControllerCreateFunc = (options: CoreMarkerTrackingControllerOptions) => CoreMarkerTrackingController;
export type MarkerTrackingBarCodeUrlFunc = (type: string, value: number) => string;
export interface MarkerTrackingConfig {
    barcodeUrl: MarkerTrackingBarCodeUrlFunc;
    createController: MarkerTrackingControllerCreateFunc;
    barCodes: {
        types: string[];
        valuesCountByType: Record<string, number>;
    };
}
export declare class PolyMarkerTrackingController {
    private _config;
    private _controller;
    setConfig(config: MarkerTrackingConfig): void;
    barCodeUrl(type: string, value: number): string | void;
    barCodeTypes(): string[];
    config(): MarkerTrackingConfig | undefined;
    hasController(): boolean;
    createController(options: CoreMarkerTrackingControllerOptions): CoreMarkerTrackingController | undefined;
    controller(): CoreMarkerTrackingController | null;
}
