import { AppContext } from '../types.js';
import { ResolverBase } from '../generic/ResolverBase.js';
/**
 * GraphQL input type for inline dependency queries.
 * Self-referencing to support recursive dependency trees.
 */
export declare class QueryDependencySpecInput {
    Name: string;
    CategoryPath: string;
    SQL: string;
    UsesTemplate?: boolean;
    Parameters?: Record<string, string>;
    Dependencies?: QueryDependencySpecInput[];
}
/**
 * GraphQL input type for transient query execution.
 * Accepts the full QueryExecutionSpec shape for testing unsaved queries
 * with composition + Nunjucks template processing.
 */
export declare class TestQuerySQLInput {
    SQL: string;
    Parameters?: Record<string, string>;
    UsesTemplate?: boolean;
    Dependencies?: QueryDependencySpecInput[];
    MaxRows?: number;
}
/**
 * GraphQL output type for transient query execution results.
 */
export declare class TestQuerySQLResult {
    Success: boolean;
    Results?: string;
    RowCount: number;
    ExecutionTime: number;
    ErrorMessage?: string;
    AppliedParameters?: string;
}
/**
 * Resolver for testing transient (unsaved) query SQL with full composition + Nunjucks template processing.
 *
 * This resolver exposes the lower-layer spec-based execution pipeline via GraphQL,
 * enabling external systems (e.g., Skip-Brain) to test query SQL before saving to the database.
 *
 * Security:
 * - Requires system user authentication (@RequireSystemUser)
 * - Uses read-only database connection (no mutation possible)
 * - Enforces MaxRows limit (default 100) to prevent unbounded queries
 *
 * @see https://github.com/MemberJunction/MJ/issues/2172
 */
export declare class TestQuerySQLResolver extends ResolverBase {
    TestQuerySQL(input: TestQuerySQLInput, context: AppContext): Promise<TestQuerySQLResult>;
}
//# sourceMappingURL=TestQuerySQLResolver.d.ts.map