import type { Detector, DetectorInstanceConfig } from './detector.interface';
export type DetectorStrategyActivationState = 'ACTIVE' | 'EXPERIMENT' | 'SUPPRESSED' | 'ARCHIVED';
export type DetectorStrategyAuthor = 'advisor' | 'system' | 'manual';
export interface DetectorStrategyDependencySet {
    plugins: string[];
    indicators: string[];
    patterns?: string[];
}
export interface DetectorStrategyMetadata {
    strategyId: string;
    strategyFamily: string;
    strategyVersion: string;
    detectorType: string;
    experimentTag?: string;
    createdBy: DetectorStrategyAuthor;
}
export interface DetectorStrategyDefinition {
    metadata: DetectorStrategyMetadata;
    dependencies: DetectorStrategyDependencySet;
    parameters: Record<string, unknown>;
    activationState: DetectorStrategyActivationState;
    createdAt: number;
    updatedAt: number;
}
export interface DetectorStrategyVersion {
    strategyId: string;
    strategyVersion: string;
    activationState: DetectorStrategyActivationState;
    updatedAt: number;
}
export interface DetectorStrategyRuntime {
    strategy: DetectorStrategyMetadata;
    activationState: DetectorStrategyActivationState;
    detectorSource: string;
    patternId?: string;
    runtimeSysName: string;
    loaderSysName: string;
}
export interface DetectorStrategySignalAttribution {
    strategyId: string;
    strategyVersion?: string;
    detectorSource?: string;
    patternId?: string;
}
export interface DetectorStrategyLoadResult {
    definition: DetectorStrategyDefinition;
    runtime: DetectorStrategyRuntime;
    instance: DetectorInstanceConfig;
    mergedOptions: Partial<Detector>;
}
//# sourceMappingURL=detector-strategy.interface.d.ts.map