import { Query } from "mongoose";
export interface PaginationOptions {
    perPage?: number;
    page?: number;
}
export interface PaginatedResult<T> {
    data: T[];
    metadata: {
        total: number;
        perPage: number;
        page: number;
        lastPage: number;
    };
}
/**
 * Paginate a mongoose query result
 * @param query The query you want to paginate
 * @param options Pagination options like page number and/or items per page
 * @returns Paginated query with metadata
 */
export declare const paginate: <T>(query: Query<any, T>, options?: PaginationOptions) => Promise<PaginatedResult<T>>;
