import { SimpleSelectQuery } from "../models/SelectQuery";
/**
 * Options for pagination injection
 */
export interface PaginationOptions {
    /** Page number (1-based) */
    page: number;
    /** Number of items per page */
    pageSize: number;
}
/**
 * SqlPaginationInjector injects pagination (LIMIT/OFFSET) into a SelectQuery model,
 * creating LIMIT and OFFSET clauses based on provided pagination options.
 */
export declare class SqlPaginationInjector {
    /**
     * Injects pagination as LIMIT/OFFSET clauses into the given query model.
     * @param query The SelectQuery to modify
     * @param pagination Pagination options containing page number and page size
     * @returns The modified SimpleSelectQuery with pagination applied
     */
    inject(query: SimpleSelectQuery | string, pagination: PaginationOptions): SimpleSelectQuery;
    /**
     * Removes LIMIT and OFFSET clauses from the given query.
     * @param query The SelectQuery to modify
     * @returns The modified SimpleSelectQuery with pagination removed
     */
    static removePagination(query: SimpleSelectQuery | string): SimpleSelectQuery;
    /**
     * Validates pagination options
     * @param pagination Pagination options to validate
     * @throws Error if validation fails
     */
    private validatePaginationOptions;
}
