/**
 * NEXUS query parser and resolver - cross-project task references.
 *
 * Supports the `project:taskId` syntax:
 *   - `my-app:T001`  - Named project
 *   - `.:T001`       - Current project
 *   - `*:T001`       - Wildcard (all projects)
 *   - `T001`         - Implicit current project
 *
 * @task T4574
 * @epic T4540
 */
import type { Task } from '@cleocode/contracts';
export interface NexusParsedQuery {
    project: string;
    taskId: string;
    wildcard: boolean;
}
/** Task with project context annotation. */
export type NexusResolvedTask = Task & {
    _project: string;
};
/**
 * Validate a query string matches expected syntax.
 */
export declare function validateSyntax(query: string): boolean;
/**
 * Parse a query string into its components.
 * @throws CleoError with NEXUS_INVALID_SYNTAX for bad format.
 */
export declare function parseQuery(query: string, currentProject?: string): NexusParsedQuery;
/**
 * Get the current project name from context.
 * Reads .cleo/project-info.json or falls back to directory name.
 */
export declare function getCurrentProject(): string;
/**
 * Resolve a project name to its filesystem path.
 * Handles special cases: "." (current), "*" (wildcard marker).
 */
export declare function resolveProjectPath(projectName: string): Promise<string>;
/**
 * Resolve a query to task data.
 * For wildcard queries, returns an array of matches from all projects.
 * For named projects, returns a single task with project context.
 */
export declare function resolveTask(query: string, currentProject?: string): Promise<NexusResolvedTask | NexusResolvedTask[]>;
/**
 * Extract the project name from a query without full resolution.
 * Useful for permission checks before task lookup.
 */
export declare function getProjectFromQuery(query: string, currentProject?: string): string;
//# sourceMappingURL=query.d.ts.map