import type { ContextMetadata, EvaluationResult } from '../types/context-types';
import type { ValidationResult, EvaluationType } from '../types/base-types';
import type { LLMDocumentation } from '../types/command-types';
export declare const BehaviorsInputSchema: import("../validation/lightweight-validators").RuntimeValidator<unknown>;
export declare const BehaviorsOutputSchema: import("../validation/lightweight-validators").RuntimeValidator<unknown>;
export type BehaviorsInput = any;
export type BehaviorsOutput = any;
export interface BehaviorDefinition {
    name: string;
    namespace?: string;
    parameters: string[];
    initBlock?: {
        commands: any[];
    };
    eventHandlers: EventHandlerDefinition[];
    lifecycle?: {
        onCreate?: any[];
        onMount?: any[];
        onUnmount?: any[];
        onDestroy?: any[];
    };
    metadata: BehaviorMetadata;
}
export interface EventHandlerDefinition {
    id: string;
    event: string;
    eventSource?: string;
    filter?: string;
    commands: any[];
    options: {
        once?: boolean;
        passive?: boolean;
        capture?: boolean;
        throttle?: number;
        debounce?: number;
    };
}
export interface BehaviorInstance {
    id: string;
    behaviorName: string;
    element: HTMLElement;
    parameters: Record<string, any>;
    eventListeners: Map<string, EventListener>;
    isInstalled: boolean;
    isActive: boolean;
    createdAt: number;
    lastActivated: number;
    installationCount: number;
}
export interface BehaviorMetadata {
    name: string;
    namespace?: string;
    parameters: string[];
    eventHandlerCount: number;
    hasLifecycleHooks: boolean;
    complexity: number;
    createdAt: number;
    installCount: number;
    averageInstallTime: number;
}
export interface LifecycleEvent {
    phase: 'create' | 'mount' | 'unmount' | 'destroy';
    behaviorName: string;
    instanceId: string;
    element: HTMLElement;
    timestamp: number;
    data?: any;
}
export declare class TypedBehaviorsFeatureImplementation {
    readonly name = "behaviorsFeature";
    readonly category: "Frontend";
    readonly description = "Type-safe behavior definition and installation feature with lifecycle management, event handling, and parameter validation";
    readonly inputSchema: import("../validation/lightweight-validators").RuntimeValidator<unknown>;
    readonly outputType: EvaluationType;
    private evaluationHistory;
    private behaviorDefinitions;
    private behaviorInstances;
    private elementBehaviors;
    private lifecycleHistory;
    private namespaces;
    readonly metadata: ContextMetadata;
    readonly documentation: LLMDocumentation;
    initialize(input: BehaviorsInput): Promise<EvaluationResult<BehaviorsOutput>>;
    validate(input: unknown): ValidationResult;
    private initializeConfig;
    private registerBehavior;
    private installBehaviorOnTarget;
    private createBehaviorInstance;
    private installEventHandlers;
    private installEventHandler;
    private createBehaviorEventHandler;
    private executeCommands;
    private executeBasicCommand;
    private executeLifecycleHook;
    private isValidEventType;
    private testEventFilter;
    private calculateBehaviorComplexity;
    private createBehaviorDefiner;
    private createBehaviorInstaller;
    private createBehaviorUninstaller;
    private createBehaviorChecker;
    private createBehaviorLister;
    private createDefinitionGetter;
    private createInstanceCreator;
    private createInstanceDestroyer;
    private createInstanceGetter;
    private createElementInstanceGetter;
    private createParameterUpdater;
    private createEventHandlerAdder;
    private createEventHandlerRemover;
    private createLifecycleTrigger;
    private createHandlerGetter;
    private createParameterValidator;
    private createParameterBinder;
    private createDefaultsGetter;
    private createDefaultsSetter;
    private createLifecycleHandler;
    private createLifecycleEventTrigger;
    private destroyBehaviorInstance;
    private trackPerformance;
    getPerformanceMetrics(): {
        totalInitializations: number;
        successRate: number;
        averageDuration: number;
        lastEvaluationTime: number;
        evaluationHistory: {
            input: BehaviorsInput;
            output?: BehaviorsOutput;
            success: boolean;
            duration: number;
            timestamp: number;
        }[];
        totalBehaviors: number;
        totalInstances: number;
        totalNamespaces: number;
        lifecycleEvents: number;
        averageComplexity: number;
    };
}
export declare function createBehaviorsFeature(): TypedBehaviorsFeatureImplementation;
export declare function createBehaviors(behavior: Partial<BehaviorsInput['behavior']>, options?: Partial<BehaviorsInput>): Promise<EvaluationResult<BehaviorsOutput>>;
export declare const enhancedBehaviorsImplementation: TypedBehaviorsFeatureImplementation;
//# sourceMappingURL=behaviors.d.ts.map