import type { RuntimeValidator } from '../validation/lightweight-validators';
import type { ExecutionContext, ValidationError, ValidationResult } from './base-types';
export type { CoreExecutionContext } from './core-context';
export { createCoreContext, isCoreExecutionContext, assertHTMLElement, asHTMLElement, } from './core-context';
export type { ValidationError, ValidationResult } from './base-types';
export type HyperScriptValueType = 'string' | 'number' | 'boolean' | 'element' | 'element-list' | 'array' | 'object' | 'promise' | 'fragment' | 'null' | 'undefined' | 'function' | 'event' | 'error' | 'unknown';
export type EvaluationType = HyperScriptValueType | 'Any' | 'Context' | 'Command' | 'Expression';
export type HyperScriptValue = string | number | boolean | HTMLElement | HTMLElement[] | unknown[] | Record<string, unknown> | Promise<unknown> | DocumentFragment | null | undefined | Function | Event;
export type { ExecutionContext, TypedExecutionContext } from './base-types';
export interface Result<T = unknown> {
    readonly success: boolean;
    readonly value?: T;
    readonly error?: {
        readonly name: string;
        readonly message: string;
        readonly code?: string;
        readonly suggestions?: string[];
    };
    readonly type?: string;
}
export interface TypedResult<T = unknown> extends Result<T> {
    readonly errors?: ValidationError[];
    readonly suggestions?: readonly string[] | string[];
}
export type CommandCategory = 'dom-manipulation' | 'event-handling' | 'data-processing' | 'control-flow' | 'animation' | 'network' | 'utility' | 'navigation' | 'templates' | 'advanced';
export type SideEffect = 'dom-mutation' | 'network-request' | 'local-storage' | 'global-state' | 'event-emission' | 'timer-creation' | 'navigation' | 'dom-query' | 'history' | 'async' | 'attribute-transfer';
export type ExpressionCategory = 'Reference' | 'Property' | 'Logical' | 'Mathematical' | 'Conversion' | 'Positional' | 'Special' | 'Template';
export interface ExpressionMetadata {
    readonly category: ExpressionCategory;
    readonly complexity: 'simple' | 'medium' | 'complex';
    readonly sideEffects?: SideEffect[];
    readonly dependencies?: string[];
    readonly returnTypes?: EvaluationType[];
    readonly examples?: Array<{
        readonly input: string;
        readonly description: string;
        readonly expectedOutput: unknown;
        readonly context?: Partial<ExecutionContext>;
    }>;
    readonly relatedExpressions?: string[];
    readonly performance?: {
        readonly averageTime: number;
        readonly complexity: string;
    };
}
export interface ASTNode {
    readonly type: string;
    readonly line?: number;
    readonly column?: number;
    readonly start?: number;
    readonly end?: number;
    readonly raw?: string;
    readonly [key: string]: unknown;
}
export interface ParseError {
    readonly name?: string;
    readonly message: string;
    readonly line: number;
    readonly column: number;
    readonly position?: number;
    readonly source?: string;
}
export interface LLMDocumentation {
    readonly summary: string;
    readonly parameters: Array<{
        readonly name: string;
        readonly type: string;
        readonly description: string;
        readonly optional: boolean;
        readonly examples: string[];
    }>;
    readonly returns: {
        readonly type: string;
        readonly description: string;
        readonly examples: string[];
    };
    readonly examples: Array<{
        readonly title: string;
        readonly code: string;
        readonly explanation: string;
        readonly output: unknown;
    }>;
    readonly seeAlso: string[];
    readonly tags: string[];
}
export declare class Validator {
    static validateInput<T>(input: unknown, schema: RuntimeValidator<T>): ValidationResult<T>;
    static createValidationError(type: ValidationError['type'], message: string, suggestions?: string[], path?: string, code?: string): ValidationError;
    static createSuccessResult<T>(data: T): ValidationResult<T>;
    static createErrorResult<T>(errors: ValidationError[], suggestions?: string[]): ValidationResult<T>;
}
export declare function isValidationResult<T>(value: unknown): value is ValidationResult<T>;
export declare function isExecutionContext(value: unknown): value is ExecutionContext;
export declare const CoreTypes: {
    Validator: typeof Validator;
    isValidationResult: typeof isValidationResult;
    isExecutionContext: typeof isExecutionContext;
};
//# sourceMappingURL=unified-types.d.ts.map