/**
 * Globals and Snippets Loader
 *
 * Loads shared configuration from:
 * - globals.json - Shared variables across all test files
 * - snippets/ - Reusable block sequences (composite blocks)
 */
import { TestStep, ProcedureDefinition } from '../core';
export interface GlobalsConfig {
    variables?: Record<string, unknown>;
    procedures?: Record<string, ProcedureDefinition>;
    baseUrl?: string;
    timeout?: number;
    testIdAttribute?: string;
    [key: string]: unknown;
}
export interface SnippetDefinition {
    name: string;
    description?: string;
    category?: string;
    color?: string;
    params?: SnippetParam[];
    steps: TestStep[];
}
export interface SnippetParam {
    name: string;
    type: 'string' | 'number' | 'boolean' | 'any';
    default?: unknown;
    description?: string;
}
/**
 * Set the directory to look for globals.json and snippets/
 */
export declare function setGlobalsDirectory(dir: string): void;
/**
 * Get the current globals directory
 */
export declare function getGlobalsDirectory(): string;
/**
 * Load globals.json from the globals directory
 */
export declare function loadGlobals(): GlobalsConfig;
/**
 * Get the loaded globals
 */
export declare function getGlobals(): GlobalsConfig;
/**
 * Get global variables
 */
export declare function getGlobalVariables(): Record<string, unknown>;
/**
 * Get global procedures from globals.json
 */
export declare function getGlobalProcedures(): Record<string, ProcedureDefinition>;
/**
 * Get the configured test ID attribute (defaults to 'data-testid')
 */
export declare function getTestIdAttribute(): string;
/**
 * Set the test ID attribute and persist to globals.json
 */
export declare function setTestIdAttribute(attribute: string): void;
/**
 * Discover snippet files in the snippets directory
 */
export declare function discoverSnippets(): string[];
/**
 * Load a specific snippet by name
 */
export declare function loadSnippet(snippetName: string): SnippetDefinition | null;
/**
 * Load all discovered snippets
 */
export declare function loadAllSnippets(): void;
/**
 * Get a loaded snippet by name
 */
export declare function getSnippet(snippetName: string): SnippetDefinition | undefined;
/**
 * Get all loaded snippets
 */
export declare function getAllSnippets(): SnippetDefinition[];
/**
 * Initialize globals and snippets from a directory
 */
export declare function initializeGlobalsAndSnippets(dir?: string): void;
/**
 * Clear loaded globals and snippets
 */
export declare function clearGlobalsAndSnippets(): void;
