import { type Abi, type AbiEvent } from "abitype";
import type { Context } from "./ConfigLoader.ts";
import type * as Model from "./Model.ts";
export declare const defineDataset: (fn: (context: Context) => typeof Model.DatasetConfig.Encoded) => (context: Context) => {
    readonly name: string;
    readonly network: string;
    readonly dependencies: {
        readonly [x: string]: string;
    };
    readonly description?: string | undefined;
    readonly namespace?: string | undefined;
    readonly readme?: string | undefined;
    readonly repository?: string | undefined;
    readonly keywords?: readonly string[] | undefined;
    readonly sources?: readonly string[] | undefined;
    readonly license?: string | undefined;
    readonly private?: boolean | undefined;
    readonly tables?: {
        readonly [x: string]: {
            readonly sql: string;
        };
    } | undefined;
    readonly functions?: {
        readonly [x: string]: {
            readonly source: {
                readonly source: string;
                readonly filename: string;
            };
            readonly outputType: string;
            readonly inputTypes: readonly string[];
        };
    } | undefined;
};
export declare const eventQuery: (abi: AbiEvent, rpcSource?: string) => string;
export declare const camelToSnake: (str: string) => string;
export declare const eventTableName: (abi: AbiEvent) => string;
export declare const eventTable: (abi: AbiEvent, rpcSource?: string) => {
    sql: string;
};
export declare const eventTables: (abi: Abi, rpcSource?: string) => Record<string, Model.TableDefinition>;
//# sourceMappingURL=config.d.ts.map