import { type WaitableTransactionReceipt } from "../registry/utils.js"; import { type FetchConfig } from "../validator/client/index.js"; import { type PollingController } from "./await.js"; import { type ChainName } from "./chains.js"; import { type Signer, type ExternalProvider } from "./ethers.js"; export interface ReadConfig { baseUrl: string; aliases?: AliasesNameMap; apiKey?: string; } export interface SignerConfig { signer: Signer; } export interface AutoWaitConfig { autoWait: boolean; } export type Config = Partial; /** * A series of mappings from a table alias to its globally unique table name. */ export type NameMapping = Record; /** * Used to read and write table aliases within a `Database` instance * @property read A function that returns a {@link NameMapping} object, or a * `Promise` of a {@link NameMapping} object. * @property write A function that accepts a {@link NameMapping} object and * returns `void`, or a Promise of void. */ export interface AliasesNameMap { read: (() => Promise) | (() => NameMapping); write: ((map: NameMapping) => Promise) | ((map: NameMapping) => void); } export declare function checkWait(config: Config & Partial, receipt: WaitableTransactionReceipt, controller?: PollingController): Promise; export declare function extractBaseUrl(conn?: Config, chainNameOrId?: ChainName | number): Promise; export declare function extractSigner(conn?: Config, external?: ExternalProvider): Promise; export declare function extractChainId(conn?: Config): Promise; export declare function prepReadConfig(config: Partial): FetchConfig; /** * Read the {@link NameMapping} from an {@link AliasesNameMap}, which can * support either synchronous or asynchronous `read()` execution. It will wrap a * synchronous name mapping result, or wrap an unwrapped name mapping if * asynchronous. * @param aliases An `AliasesNameMap` object. * @returns A promise containing a `NameMapping` object. */ export declare function readNameMapping(aliases: AliasesNameMap): Promise; /** * Write table aliases with an {@link AliasesNameMap} and a provided * {@link NameMapping}, which can support either synchronous or asynchronous * `write()` execution. It will wrap a synchronous result, or wrap an unwrapped * result if asynchronous. * @param aliases An `AliasesNameMap` object to write to. * @param nameMap A `NameMapping` object to write to the `AliasesNameMap`. * @returns A promise containing `void` upon write completion. */ export declare function writeNameMapping(aliases: AliasesNameMap, nameMap: NameMapping): Promise; //# sourceMappingURL=config.d.ts.map