import type { Options as RetryOptions } from "async-retry"; export type GQLResponse = { data: Record | T; errors?: { message: string; }[]; }; export type PageInfo = { endCursor: string | undefined; hasNextPage: boolean; }; /** Object describing metadata about a query, including the type, enum values, vars, and other info */ export type QueryInfo = { /** Name of the query (GQL query name) */ name: string; /** Minimal object representing the return shape of the query */ query: Record; /** Names of all enumeration values - these need special formatting */ enumValues?: string[]; /** variables to supply the query */ vars: Record; /** Tell the GQL compiler to remap the variable with name to variable with name */ remapVars?: Record undefined | void | [newKey: string, newValue: string])>; paging?: { /** name of the hasNextPage pageInfo var */ hasNextPage: string; /** name of the cursor edge var*/ cursor: string; /** name of the limiter */ limiterName: string; }; }; export type Network = "mainnet" | "devnet" | "arweave" | string; export type SearchOpts = { skipVariableSetters?: boolean; query?: QueryInfo | false; }; export type QueryCtorOpts = { url?: URL | string; network?: Network; retryConfig?: RetryOptions; }; export type Pretty = T extends (...args: any[]) => any ? T : T extends abstract new (...args: any[]) => any ? T : { [K in keyof T]: T[K]; }; export type Prettify = { [K in keyof T]: T[K]; } & {}; export type Prettify2 = { [K in keyof T]: Prettify; } & {}; export type ReturnFields = { [K in keyof S]: F[K] extends (infer U)[] ? Pick[] : S[K] extends object ? ReturnFields : S[K] extends true ? Required : undefined; } | undefined; type UserField = Record; export type Field> = { [K in keyof T]?: T[K] extends (infer U extends object)[] ? Field : T[K] extends object ? Field : boolean; }; export type BuilderMethods, R = any> = { [K in keyof T]-?: T[K] extends object ? BuilderMethods : (field: T[K]) => BuilderMethods; } & R; export type ArrayElement = T extends (infer U)[] ? U : T; export declare function assertIs(value: unknown): asserts value is T; export type HasBuilderMethods, R = any> = { [K in keyof T]-?: T[K] extends object ? BuilderMethods : (field: T[K]) => R & BuilderMethods; }; export {};