import { Model, FindOptions, Attributes } from 'sequelize';
export declare type OrderDirection = 'DESC' | 'ASC';
export declare type FieldOrderConfig = [string, OrderDirection];
export declare type OrderConfig = FieldOrderConfig[];
export declare type CursorPayload = any[];
export interface PaginationEdge<Node = any> {
    cursor: string;
    node: Node;
}
export interface PageInfo {
    hasNextPage: boolean;
    hasPreviousPage: boolean;
    startCursor: string | null;
    endCursor: string | null;
}
export interface PaginationConnection<Node = any> {
    totalCount: number;
    edges: PaginationEdge<Node>[];
    pageInfo: PageInfo;
}
export interface MakePaginateOptions {
    primaryKeyField?: string | string[];
    omitPrimaryKeyFromOrder?: boolean;
}
export interface PaginateOptions<ModelType extends Model> extends FindOptions<Attributes<ModelType>> {
    after?: string;
    before?: string;
}