export interface AxiomV2Query {
    version: number;
    sourceChainId: string;
    caller: string;
    dataQueryHash: string;
    computeQuery: AxiomV2ComputeQuery;
    callback: AxiomV2Callback;
    userSalt: string;
    feeData: AxiomV2FeeData;
    refundee: string;
}
export interface AxiomV2FullQuery {
    version: number;
    sourceChainId: string;
    caller: string;
    dataQuery: AxiomV2DataQuery;
    computeQuery: AxiomV2ComputeQuery;
    callback: AxiomV2Callback;
    userSalt: string;
    feeData: AxiomV2FeeData;
    refundee: string;
}
export interface AxiomV2ComputeQuery {
    k: number;
    resultLen?: number;
    vkey: string[];
    computeProof: string;
}
export interface AxiomV2DataQuery {
    sourceChainId: string;
    subqueries: DataSubquery[];
}
export interface AxiomV2Callback {
    target: string;
    extraData: string;
}
export interface AxiomV2FeeData {
    maxFeePerGas: string;
    callbackGasLimit: number;
    overrideAxiomQueryFee: string;
}
export interface AxiomV2QueryWitness {
    caller: string;
    userSalt: string;
    queryHash: string;
    callbackHash: string;
    refundee: string;
}
export interface AxiomV2Result {
    sourceChainId: string;
    dataResultsRoot: string;
    dataResultsPoseidonRoot: string;
    computeResultsHash: string;
}
export interface Subquery {
    /**
     * The block number of the block that the subquery needs data from.
     * `undefined` if no block is needed.
     */
    blockNumber?: number;
}
export interface StorageSubqueryV1 extends Subquery {
    blockNumber: number;
    address?: string;
    slot?: string;
    value?: string;
}
export interface HeaderSubquery extends Subquery {
    blockNumber: number;
    fieldIdx: number;
}
export interface AccountSubquery extends Subquery {
    blockNumber: number;
    addr: string;
    fieldIdx: number;
}
export interface StorageSubquery extends Subquery {
    blockNumber: number;
    addr: string;
    slot: string;
}
export interface TxSubquery extends Subquery {
    blockNumber: number;
    txIdx: number;
    fieldOrCalldataIdx: number;
}
export interface ReceiptSubquery extends Subquery {
    blockNumber: number;
    txIdx: number;
    fieldOrLogIdx: number;
    topicOrDataOrAddressIdx: number;
    eventSchema: string;
}
export interface SolidityNestedMappingSubquery extends Subquery {
    blockNumber: number;
    addr: string;
    mappingSlot: string;
    mappingDepth: number;
    keys: string[];
}
export interface BeaconValidatorSubquery extends Subquery {
}
export interface AccountState {
    nonce: string;
    balance: string;
    storageHash: string;
    codeHash: string;
}
export interface DataSubquery {
    type: DataSubqueryType;
    subqueryData: Subquery;
}
export declare enum DataSubqueryType {
    StorageV1 = 0,
    Header = 1,
    Account = 2,
    Storage = 3,
    Transaction = 4,
    Receipt = 5,
    SolidityNestedMapping = 6,
    BeaconValidator = 7
}
export declare enum HeaderField {
    ParentHash = 0,
    Sha3Uncles = 1,
    Miner = 2,
    StateRoot = 3,
    TransactionsRoot = 4,
    ReceiptsRoot = 5,
    LogsBloom = 6,
    Difficulty = 7,
    Number = 8,
    GasLimit = 9,
    GasUsed = 10,
    Timestamp = 11,
    ExtraData = 12,
    MixHash = 13,
    Nonce = 14,
    BaseFeePerGas = 15,
    WithdrawalsRoot = 16
}
export declare enum AccountField {
    Nonce = 0,
    Balance = 1,
    StorageRoot = 2,
    CodeHash = 3
}
export declare enum TxField {
    ChainId = 0,
    Nonce = 1,
    MaxPriorityFeePerGas = 2,
    MaxFeePerGas = 3,
    GasLimit = 4,
    To = 5,
    Value = 6,
    Data = 7,
    GasPrice = 8,
    v = 9,
    r = 10,
    s = 11
}
export declare enum ReceiptField {
    Status = 0,
    PostState = 1,
    CumulativeGas = 2,
    LogsBloom = 3,
    Logs = 4
}
export declare enum TxType {
    Legacy = 0,
    Eip2930 = 1,
    Eip1559 = 2,
    Eip4844 = 3,
    OpSystem = 126
}
