/**
 * Buddy Script - Scripting Language for code-buddy automation
 *
 * Inspired by FileCommander Enhanced Script (FCS)
 *
 * Usage:
 *   grok --script myscript.bs
 *   /script run myscript.bs
 *   /script new myscript.bs
 */
import { CodeBuddyScriptConfig, ScriptResult, ProgramNode } from './types.js';
export * from './types.js';
export { Lexer, tokenize } from './lexer.js';
export { Parser, parse } from './parser.js';
export { Runtime } from './runtime.js';
export { createBuiltins } from './builtins.js';
/**
 * Execute a Buddy Script from source code
 */
export declare function executeScript(source: string, config?: Partial<CodeBuddyScriptConfig>): Promise<ScriptResult>;
/**
 * Execute a Buddy Script from a file
 */
export declare function executeScriptFile(filePath: string, config?: Partial<CodeBuddyScriptConfig>): Promise<ScriptResult>;
/**
 * Validate a Buddy Script without executing it
 */
export declare function validateScript(source: string): {
    valid: boolean;
    errors: string[];
};
/**
 * Format/pretty-print a Buddy Script AST
 */
export declare function formatAST(ast: ProgramNode): string;
/**
 * Create a new script template
 */
export declare function createScriptTemplate(name: string, description?: string): string;
/**
 * Get script file extension
 */
export declare function getScriptExtension(): string;
/**
 * Check if a file is a Buddy Script
 */
export declare function isBuddyScript(filePath: string): boolean;
/**
 * Script Manager - singleton for managing scripts
 */
declare class CodeBuddyScriptManager {
    private scripts;
    private history;
    /**
     * Load and cache a script
     */
    load(filePath: string): Promise<ProgramNode>;
    /**
     * Execute a cached or new script
     */
    execute(filePath: string, config?: Partial<CodeBuddyScriptConfig>): Promise<ScriptResult>;
    /**
     * Clear cached scripts
     */
    clearCache(): void;
    /**
     * Get execution history
     */
    getHistory(): Array<{
        script: string;
        result: ScriptResult;
        timestamp: Date;
    }>;
    /**
     * List available scripts in a directory
     */
    listScripts(dir?: string): string[];
}
export declare function getScriptManager(): CodeBuddyScriptManager;
export declare function resetScriptManager(): void;
