import type { CipClient } from '../../clients/cip.js';
import type { CipDescribeTableOptions, CipDescribeTableResult, CipListTablesOptions, CipListTablesResult, CipReportDefinition, CipReportExecutionOptions, CipReportQueryResult, CipReportSqlResult } from './types.js';
/**
 * Curated CIP report operations.
 *
 * This module exposes report catalog discovery, SQL generation, and
 * report execution helpers on top of {@link CipClient}.
 *
 * @module operations/cip
 */
export type { CipColumnMetadata, CipDescribeTableOptions, CipDescribeTableResult, CipListTablesOptions, CipListTablesResult, CipReportDefinition, CipReportExecutionOptions, CipReportParamType, CipReportParamDefinition, CipReportQueryExecutor, CipReportQueryResult, CipReportSqlResult, CipTableMetadata, } from './types.js';
export { booleanLiteral, dateLiteral, escapeSqlString, integerLiteral, isReservedIdentifier, quoteIdentifierIfReserved, stringInList, stringLiteral, } from './sql.js';
/**
 * Lists tables from the CIP metadata catalog.
 *
 * @param client - CIP client instance for executing metadata queries
 * @param options - Optional filtering and pagination options (schema, table name pattern, table type, fetch size)
 * @returns Promise resolving to a list of table metadata records with schema information and table count
 */
export declare function listCipTables(client: CipClient, options?: CipListTablesOptions): Promise<CipListTablesResult>;
/**
 * Describes table columns from the CIP metadata catalog.
 *
 * @param client - CIP client instance for metadata queries
 * @param tableName - Name of the table to describe
 * @param options - Optional schema selection and pagination options
 * @returns Promise resolving to table column descriptions and metadata
 */
export declare function describeCipTable(client: CipClient, tableName: string, options?: CipDescribeTableOptions): Promise<CipDescribeTableResult>;
/**
 * Lists all curated CIP reports.
 *
 * @returns Array of all available curated CIP report definitions
 */
export declare function listCipReports(): CipReportDefinition[];
/**
 * Looks up a curated CIP report by name.
 *
 * @param name - The report name to look up
 * @returns The report definition if found, undefined if no report matches the provided name
 */
export declare function getCipReportByName(name: string): CipReportDefinition | undefined;
/**
 * Builds SQL for a curated report after validating provided parameters.
 *
 * @param name - The name of the report to build SQL for
 * @param params - Parameter values to substitute into the report template, keyed by parameter name
 * @returns The report definition and generated SQL string ready for execution
 * @throws {Error} If the report name is not found in the catalog or required parameters are missing
 */
export declare function buildCipReportSql(name: string, params: Record<string, string>): CipReportSqlResult;
/**
 * Executes a curated report query and returns decoded rows.
 *
 * @param client - The CIP client instance to execute the query with
 * @param reportName - The name of the curated report to execute
 * @param options - Report execution options including params and fetch size
 * @returns Promise resolving to the query result containing decoded rows and report metadata
 */
export declare function executeCipReport(client: CipClient, reportName: string, options: CipReportExecutionOptions): Promise<CipReportQueryResult>;
