/**
 * Base Collector Class
 * Abstract base class for all fingerprint collectors
 */
import { CollectorCategory, CollectorMetadata, ComponentCollector } from "../types";
/**
 * Abstract base class for collectors
 */
export declare abstract class BaseCollector<T = unknown> implements ComponentCollector<T> {
    abstract readonly name: string;
    abstract readonly metadata: CollectorMetadata;
    /**
     * Collect fingerprint data
     * Override this method in subclasses
     */
    abstract collect(): Promise<T> | T;
    /**
     * Check if collector is supported
     * Override in subclasses for specific checks
     */
    isSupported(): boolean;
    /**
     * Safe collection with error handling
     */
    protected safeCollect<R>(fn: () => R, defaultValue: R): R;
    /**
     * Create metadata helper
     */
    protected static createMetadata(name: string, options?: {
        weight?: number;
        entropy?: number;
        stable?: boolean;
        category?: CollectorCategory;
    }): CollectorMetadata;
}
/**
 * Async base collector with timeout support
 */
export declare abstract class AsyncBaseCollector<T = unknown> extends BaseCollector<T> {
    protected timeout: number;
    /**
     * Set collector timeout
     */
    setTimeout(ms: number): this;
    /**
     * Wrap async operation with timeout
     */
    protected withTimeout<R>(promise: Promise<R>, fallback: R): Promise<R>;
}
//# sourceMappingURL=base.d.ts.map