import type { FunctionFunction } from '../../grammar.js';
import type { Jexl } from '../../Jexl.js';
import type { FunctionSchema, LibrarySchema } from './types.js';
export interface VSCodeCompletionItem {
    label: string;
    kind: number;
    detail: string;
    documentation: {
        kind: string;
        value: string;
    };
    insertText: string;
}
export declare function createVSCodeCompletionItems(library: LibrarySchema): VSCodeCompletionItem[];
export interface MonacoCompletionItem {
    label: string;
    kind: number;
    detail: string;
    documentation: {
        value: string;
    };
    insertText: string;
}
export declare function createMonacoCompletionItems(library: LibrarySchema): MonacoCompletionItem[];
export interface CodeMirrorCompletionOption {
    label: string;
    type: string;
    info: string;
    detail: string;
    apply: string;
}
export declare function createCodeMirrorCompletionOptions(library: LibrarySchema): CodeMirrorCompletionOption[];
export interface LSPCompletionItem {
    label: string;
    kind: number;
    detail: string;
    documentation: {
        kind: string;
        value: string;
    };
}
export declare function createLSPCompletionItems(library: LibrarySchema): LSPCompletionItem[];
export declare function createFunctionCallSchema(func: FunctionSchema): Record<string, unknown>;
export declare function createLibraryValidationSchemas(library: LibrarySchema): Record<string, Record<string, unknown>>;
export declare function generateFunctionTable(library: LibrarySchema): string;
export declare function generateFunctionCards(library: LibrarySchema): string;
export interface JexlInstance {
    addFunction: (name: string, func: (...args: unknown[]) => unknown) => void;
    _functions?: Record<string, unknown>;
}
export interface FunctionWithMetadata {
    (...args: unknown[]): unknown;
    _schema?: FunctionSchema;
    _category?: string;
    _parameters?: FunctionSchema['parameters'];
    _returns?: FunctionSchema['returns'];
}
export declare function registerFunctions(jexl: Jexl, library: LibrarySchema, functionModule: Record<string, FunctionFunction>): void;
export declare function getFunctionMetadata(func: FunctionWithMetadata): FunctionSchema | undefined;
export declare function listFunctionsByCategory(jexl: JexlInstance): Record<string, string[]>;
//# sourceMappingURL=integrations.d.ts.map