import { IMLProvider } from '../types'; export interface IBaseMLProviderOptions { minInterval?: number; cacheEnabled?: boolean; } export declare abstract class BaseMLProvider implements IMLProvider { protected initialized: boolean; protected lastCallTime: number; protected minInterval: number; protected pendingPromise: Promise | null; protected lastResult: TResult | null; protected cacheEnabled: boolean; constructor(options?: IBaseMLProviderOptions); initialize(config?: TConfig): Promise; detect(imageData: ImageData, timestamp?: number): Promise; wouldReturnCache(): boolean; getLastResult(): TResult | null; isReady(): boolean; clearCache(): void; dispose(): Promise; protected abstract onInitialize(config?: TConfig): Promise; protected abstract onDetect(imageData: ImageData, timestamp: number): Promise; protected abstract onDispose(): Promise; }