import { ID, Ent, Viewer, EdgeQueryableDataOptions, Data } from "../base"; export interface EdgeQuery { queryEdges(): Promise; queryAllEdges(): Promise>; queryIDs(): Promise; queryAllIDs(): Promise>; queryCount(): Promise; queryAllCount(): Promise>; queryRawCount(): Promise; queryAllRawCount(): Promise>; queryEnts(): Promise; queryAllEnts(): Promise>; first(n: number, after?: string): EdgeQuery; last(n: number, before?: string): EdgeQuery; paginationInfo(): Map; getCursor(row: TEdge): string; dataToID(edge: TEdge): ID; } export interface EdgeQueryFilter { filter?(id: ID, edges: T[]): T[]; query?(options: EdgeQueryableDataOptions): EdgeQueryableDataOptions; paginationInfo?(id: ID): PaginationInfo | undefined; } export interface PaginationInfo { hasNextPage: boolean; hasPreviousPage: boolean; startCursor: string; endCursor: string; } export declare abstract class BaseEdgeQuery { viewer: Viewer; private sortCol; private filters; private queryDispatched; protected edges: Map; private pagination; private memoizedloadEdges; constructor(viewer: Viewer, sortCol: string); first(n: number, after?: string): this; last(n: number, before?: string): this; private querySingleEdge; readonly queryEdges: () => Promise; readonly queryAllEdges: () => Promise>; abstract dataToID(edge: TEdge): ID; readonly queryIDs: () => Promise; readonly queryAllIDs: () => Promise>; readonly queryCount: () => Promise; readonly queryAllCount: () => Promise>; protected abstract loadEntsFromEdges(id: ID, edges: TEdge[]): Promise; readonly queryEnts: () => Promise; readonly queryAllEnts: () => Promise>; paginationInfo(): Map; private assertQueryDispatched; private assertQueryNotDispatched; protected abstract loadRawData(options: EdgeQueryableDataOptions): Promise; private loadEdges; getCursor(row: TEdge): string; }