/**
 * Paginate a collection to page results
 */
export default function paginate<T>(ref: any, options?: {
  orderBy?: string;
  limit?: number;
  next?: string;
  back?: string;
  whereEqual?: {
    [key: string]: any;
  };
  whereLessThan?: {
    [key: string]: any;
  };
  whereLessThanOrEqual?: {
    [key: string]: any;
  };
  whereGreaterThan?: {
    [key: string]: any;
  };
  whereGreaterThanOrEqual?: {
    [key: string]: any;
  };
  whereArrayContains?: {
    [key: string]: any;
  };
  whereArrayContainsAny?: {
    [key: string]: any;
  };
  whereIn?: {
    [key: string]: any;
  };
  timestamps?: boolean;
}): Promise<T[]>;
