import { Runtime, type RuntimeOptions } from '../runtime/runtime';
import type { ASTNode, ExecutionContext } from '../types/base-types';
import type { RuntimeHooks } from '../types/hooks';
import { DebugController } from '../debug/debug-controller';
declare global {
    interface Window {
        _hyperscript?: {
            runtime?: Runtime;
            behaviors?: Runtime['behaviorAPI'];
        };
    }
}
export interface HyperscriptConfig {
    semantic: boolean;
    language: string;
    confidenceThreshold: number;
}
export declare const config: HyperscriptConfig;
export interface CompileError {
    message: string;
    line: number;
    column: number;
    suggestion?: string;
}
export interface NewCompileOptions {
    language?: string;
    traditional?: boolean;
}
export interface CompileResult {
    ok: boolean;
    ast?: ASTNode;
    errors?: CompileError[];
    meta: {
        parser: 'semantic' | 'traditional';
        confidence?: number;
        language: string;
        timeMs: number;
        directPath?: boolean;
    };
}
export interface ValidateResult {
    valid: boolean;
    errors?: CompileError[];
}
export interface HyperscriptAPI {
    compile(code: string, options?: NewCompileOptions): Promise<CompileResult>;
    compileSync(code: string, options?: NewCompileOptions): CompileResult;
    execute(ast: ASTNode, context?: ExecutionContext): Promise<unknown>;
    eval(code: string, context?: ExecutionContext | Element, options?: NewCompileOptions): Promise<unknown>;
    validate(code: string, options?: NewCompileOptions): Promise<ValidateResult>;
    process(element: Element): void;
    createContext(element?: HTMLElement | null, parent?: ExecutionContext): ExecutionContext;
    version: string;
    config: HyperscriptConfig;
    createRuntime(options?: RuntimeOptions): Runtime;
    registerHooks(name: string, hooks: RuntimeHooks): void;
    unregisterHooks(name: string): boolean;
    getRegisteredHooks(): string[];
    debug: DebugController;
    clearCache(): void;
    getCacheStats(): {
        size: number;
        hits: number;
        misses: number;
        hitRate: number;
    };
}
export declare const hyperscript: HyperscriptAPI;
export declare const _hyperscript: HyperscriptAPI;
//# sourceMappingURL=hyperscript-api.d.ts.map