import { Database } from "lmdb"; import { IGatsbyNode } from "../redux/types"; import { GatsbyGraphQLType } from "../../index"; import { IInputQuery } from "./common/query"; import { IGraphQLRunnerStats } from "../query/types"; import { GatsbyIterable } from "./common/iterable"; export type NodeId = string; export type NodeType = string; export interface ILmdbDatabases { nodes: Database; nodesByType: Database; indexes: Database>; metadata: Database; } export interface IQueryResult { entries: GatsbyIterable; totalCount: () => Promise; } export interface IRunQueryArgs { gqlType: GatsbyGraphQLType; queryArgs: { filter: IInputQuery | undefined; sort: { fields: Array; order: Array; } | undefined; limit?: number; skip?: number; }; firstOnly: boolean; resolvedFields: Record; nodeTypeNames: Array; stats: IGraphQLRunnerStats; } export interface IDataStore { getNode(id: string): IGatsbyNode | undefined; getTypes(): Array; countNodes(typeName?: string): number; ready(): Promise; iterateNodes(): GatsbyIterable; iterateNodesByType(type: string): GatsbyIterable; runQuery(args: IRunQueryArgs): Promise; /** @deprecated */ getNodes(): Array; /** @deprecated */ getNodesByType(type: string): Array; }