import { ObjectLike } from '@mlytics/core-ts/core/type/basic'; import { MetricsExporter } from '../../kernel/core/infra/metrics/exporter'; import './.preset'; import { DriverGettings, DriverOptions, DriverSettings } from './config'; import { SpecDriverExtensionMixin } from './module/mixin'; declare global { interface Window { mlysdk: MLYSDK; } interface MLYSDK { driver: Driver; } interface MLYSpecDriver extends SpecDriver { } interface MLYSpecDriverExtensions extends ObjectLike { } } interface SpecDriver { ready: Promise; export: MetricsExporter; gettings: DriverGettings; settings: DriverSettings; extensions: SpecDriverExtensions; isSupported: boolean; isInitialized: boolean; isDeinitialized: boolean; initialize(options?: DriverOptions): this; config(options?: DriverOptions): this; extend(...extensions: SpecDriverExtensionMixin[]): this; } interface SpecDriverExtensions extends MLYSpecDriverExtensions { } declare class Driver implements SpecDriver { get ready(): Promise; get export(): MetricsExporter; get gettings(): DriverGettings; get settings(): DriverSettings; get extensions(): SpecDriverExtensions; get isSupported(): boolean; set isSupported(value: boolean); get isInitialized(): boolean; get isDeinitialized(): boolean; initialize(options?: DriverOptions): this; config(options?: DriverOptions): this; extend(...extensions: SpecDriverExtensionMixin[]): this; } declare const driver: Driver; export { SpecDriver, driver };