import type { CameraSettingsDefaultsJSON } from "scandit-web-datacapture-core/build/js/Defaults";
import { CameraSettings, Color } from "scandit-web-datacapture-core";
import type { PrivateCompositeTypeDescription, Symbology } from "./Barcode";
import { SymbologyDescription, SymbologySettings } from "./Barcode";
declare type BarcodeCaptureOverlayStyle = any;
export interface Defaults {
    SymbologySettings: {
        [key in Symbology]: SymbologySettings;
    };
    SymbologyDescriptions: SymbologyDescription[];
    CompositeTypeDescriptions: PrivateCompositeTypeDescription[];
    BarcodeCapture: {
        BarcodeCaptureOverlay: {
            defaultStyle: BarcodeCaptureOverlayStyle;
            DefaultBrush: {
                fillColor: Color;
                strokeColor: Color;
                strokeWidth: number;
            };
            styles: {
                [key in BarcodeCaptureOverlayStyle]: {
                    DefaultBrush: {
                        fillColor: Color;
                        strokeColor: Color;
                        strokeWidth: number;
                    };
                };
            };
        };
        BarcodeCaptureSettings: {
            codeDuplicateFilter: number;
        };
        RecommendedCameraSettings: CameraSettings;
    };
    BarcodeTracking: {
        RecommendedCameraSettings: CameraSettings;
        BarcodeTrackingBasicOverlay: {
            DefaultBrush: {
                fillColor: Color;
                strokeColor: Color;
                strokeWidth: number;
            };
        };
    };
    SparkCapture: {
        SparkCaptureSettings: {
            codeDuplicateFilter: number;
        };
    };
}
export interface DefaultsJSON {
    SymbologySettings: {
        [key in Symbology]: string;
    };
    SymbologyDescriptions: string[];
    CompositeTypeDescriptions: string[];
    BarcodeCapture: {
        BarcodeCaptureOverlay: {
            defaultStyle: BarcodeCaptureOverlayStyle;
            DefaultBrush: {
                fillColor: string;
                strokeColor: string;
                strokeWidth: number;
            };
            styles: Record<string, {
                DefaultBrush: {
                    fillColor: string;
                    strokeColor: string;
                    strokeWidth: number;
                };
            }>;
        };
        BarcodeCaptureSettings: {
            codeDuplicateFilter: number;
        };
        RecommendedCameraSettings: CameraSettingsDefaultsJSON;
    };
    BarcodeTracking: {
        RecommendedCameraSettings: CameraSettingsDefaultsJSON;
        BarcodeTrackingBasicOverlay: {
            DefaultBrush: {
                fillColor: string;
                strokeColor: string;
                strokeWidth: number;
            };
        };
    };
    SparkCapture: {
        SparkCaptureSettings: {
            codeDuplicateFilter: number;
        };
    };
}
export declare const defaultsFromJSON: (json: DefaultsJSON) => Defaults;
export declare let defaultValues: Defaults;
export declare function setDefaults(newDefaults: Defaults): void;
export {};
