import * as viem from 'viem';
import { EIP1193Provider, Address, Chain, Abi, PublicClient, WalletClient, WriteContractParameters, Hex } from 'viem';

declare class Constants {
    static readonly RELATIONSHIP_SCHEMA_ID = "0x89bd76e17fd84df8e1e448fa1b46dd8d97f7e8e806552b003f8386a5aebcb9f0";
    static readonly NAMED_GRAPH_RELATIONSHIP_SCHEMA_ID = "0x5003a7832fa2734780a5bf6a1f3940b84c0c66a398e62dd4e7f183fdbc7da6ee";
    static readonly OFFCHAIN_DATA_SCHEMA_ID = "0xa288e257097a4bed4166c002cb6911713edacc88e30b6cb2b0104df9c365327d";
}
declare enum SDKMode {
    BACKEND = "BACKEND",
    FRONTEND = "FRONTEND"
}
declare enum ActionType {
    Simulation = "Simulation",
    Transaction = "Transaction"
}

type Maybe<T> = T | null;
type InputMaybe<T> = Maybe<T>;
type Exact<T extends {
    [key: string]: unknown;
}> = {
    [K in keyof T]: T[K];
};
/** All built-in and custom scalars, mapped to their actual values */
type Scalars = {
    ID: {
        input: string;
        output: string;
    };
    String: {
        input: string;
        output: string;
    };
    Boolean: {
        input: boolean;
        output: boolean;
    };
    Int: {
        input: number;
        output: number;
    };
    Float: {
        input: number;
        output: number;
    };
    BigDecimal: {
        input: any;
        output: any;
    };
    BigInt: {
        input: any;
        output: any;
    };
    Bytes: {
        input: any;
        output: any;
    };
    Int8: {
        input: any;
        output: any;
    };
    Timestamp: {
        input: any;
        output: any;
    };
};
type Attestation$1 = {
    id: Scalars['ID']['output'];
    schema: Schema$1;
    replacedBy: Scalars['Bytes']['output'];
    attester: Scalars['Bytes']['output'];
    portal: Portal$1;
    attestedDate: Scalars['BigInt']['output'];
    expirationDate: Scalars['BigInt']['output'];
    revocationDate: Scalars['BigInt']['output'];
    version: Scalars['BigInt']['output'];
    revoked: Scalars['Boolean']['output'];
    subject: Scalars['Bytes']['output'];
    encodedSubject: Scalars['Bytes']['output'];
    attestationData: Scalars['Bytes']['output'];
    decodedData?: Maybe<Array<Scalars['String']['output']>>;
    auditInformation: AuditInformation;
    chainName?: Maybe<Scalars['String']['output']>;
};
type Attestation_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    schema?: InputMaybe<Scalars['String']['input']>;
    schema_not?: InputMaybe<Scalars['String']['input']>;
    schema_gt?: InputMaybe<Scalars['String']['input']>;
    schema_lt?: InputMaybe<Scalars['String']['input']>;
    schema_gte?: InputMaybe<Scalars['String']['input']>;
    schema_lte?: InputMaybe<Scalars['String']['input']>;
    schema_in?: InputMaybe<Array<Scalars['String']['input']>>;
    schema_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    schema_contains?: InputMaybe<Scalars['String']['input']>;
    schema_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_contains?: InputMaybe<Scalars['String']['input']>;
    schema_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_starts_with?: InputMaybe<Scalars['String']['input']>;
    schema_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    schema_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_ends_with?: InputMaybe<Scalars['String']['input']>;
    schema_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    schema_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_?: InputMaybe<Schema_filter>;
    replacedBy?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_not?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_gt?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_lt?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_gte?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_lte?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    replacedBy_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    replacedBy_contains?: InputMaybe<Scalars['Bytes']['input']>;
    replacedBy_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    attester?: InputMaybe<Scalars['Bytes']['input']>;
    attester_not?: InputMaybe<Scalars['Bytes']['input']>;
    attester_gt?: InputMaybe<Scalars['Bytes']['input']>;
    attester_lt?: InputMaybe<Scalars['Bytes']['input']>;
    attester_gte?: InputMaybe<Scalars['Bytes']['input']>;
    attester_lte?: InputMaybe<Scalars['Bytes']['input']>;
    attester_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    attester_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    attester_contains?: InputMaybe<Scalars['Bytes']['input']>;
    attester_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    portal?: InputMaybe<Scalars['String']['input']>;
    portal_not?: InputMaybe<Scalars['String']['input']>;
    portal_gt?: InputMaybe<Scalars['String']['input']>;
    portal_lt?: InputMaybe<Scalars['String']['input']>;
    portal_gte?: InputMaybe<Scalars['String']['input']>;
    portal_lte?: InputMaybe<Scalars['String']['input']>;
    portal_in?: InputMaybe<Array<Scalars['String']['input']>>;
    portal_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    portal_contains?: InputMaybe<Scalars['String']['input']>;
    portal_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_not_contains?: InputMaybe<Scalars['String']['input']>;
    portal_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_starts_with?: InputMaybe<Scalars['String']['input']>;
    portal_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    portal_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_ends_with?: InputMaybe<Scalars['String']['input']>;
    portal_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    portal_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    portal_?: InputMaybe<Portal_filter>;
    attestedDate?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_not?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_gt?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_lt?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_gte?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_lte?: InputMaybe<Scalars['BigInt']['input']>;
    attestedDate_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    attestedDate_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    expirationDate?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_not?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_gt?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_lt?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_gte?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_lte?: InputMaybe<Scalars['BigInt']['input']>;
    expirationDate_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    expirationDate_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    revocationDate?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_not?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_gt?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_lt?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_gte?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_lte?: InputMaybe<Scalars['BigInt']['input']>;
    revocationDate_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    revocationDate_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    version?: InputMaybe<Scalars['BigInt']['input']>;
    version_not?: InputMaybe<Scalars['BigInt']['input']>;
    version_gt?: InputMaybe<Scalars['BigInt']['input']>;
    version_lt?: InputMaybe<Scalars['BigInt']['input']>;
    version_gte?: InputMaybe<Scalars['BigInt']['input']>;
    version_lte?: InputMaybe<Scalars['BigInt']['input']>;
    version_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    version_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    revoked?: InputMaybe<Scalars['Boolean']['input']>;
    revoked_not?: InputMaybe<Scalars['Boolean']['input']>;
    revoked_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;
    revoked_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;
    subject?: InputMaybe<Scalars['Bytes']['input']>;
    subject_not?: InputMaybe<Scalars['Bytes']['input']>;
    subject_gt?: InputMaybe<Scalars['Bytes']['input']>;
    subject_lt?: InputMaybe<Scalars['Bytes']['input']>;
    subject_gte?: InputMaybe<Scalars['Bytes']['input']>;
    subject_lte?: InputMaybe<Scalars['Bytes']['input']>;
    subject_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    subject_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    subject_contains?: InputMaybe<Scalars['Bytes']['input']>;
    subject_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_not?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_gt?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_lt?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_gte?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_lte?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    encodedSubject_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    encodedSubject_contains?: InputMaybe<Scalars['Bytes']['input']>;
    encodedSubject_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_not?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_gt?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_lt?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_gte?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_lte?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    attestationData_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    attestationData_contains?: InputMaybe<Scalars['Bytes']['input']>;
    attestationData_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    decodedData?: InputMaybe<Array<Scalars['String']['input']>>;
    decodedData_not?: InputMaybe<Array<Scalars['String']['input']>>;
    decodedData_contains?: InputMaybe<Array<Scalars['String']['input']>>;
    decodedData_contains_nocase?: InputMaybe<Array<Scalars['String']['input']>>;
    decodedData_not_contains?: InputMaybe<Array<Scalars['String']['input']>>;
    decodedData_not_contains_nocase?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_?: InputMaybe<AuditInformation_filter>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<Attestation_filter>>>;
    or?: InputMaybe<Array<InputMaybe<Attestation_filter>>>;
};
type Attestation_orderBy = 'id' | 'schema' | 'schema__id' | 'schema__name' | 'schema__description' | 'schema__context' | 'schema__schema' | 'schema__attestationCounter' | 'replacedBy' | 'attester' | 'portal' | 'portal__id' | 'portal__ownerAddress' | 'portal__isRevocable' | 'portal__name' | 'portal__description' | 'portal__ownerName' | 'portal__attestationCounter' | 'attestedDate' | 'expirationDate' | 'revocationDate' | 'version' | 'revoked' | 'subject' | 'encodedSubject' | 'attestationData' | 'decodedData' | 'auditInformation' | 'auditInformation__id';
type Audit = {
    id: Scalars['ID']['output'];
    blockNumber: Scalars['BigInt']['output'];
    transactionHash: Scalars['Bytes']['output'];
    transactionTimestamp: Scalars['BigInt']['output'];
    fromAddress: Scalars['Bytes']['output'];
    toAddress?: Maybe<Scalars['Bytes']['output']>;
    valueTransferred?: Maybe<Scalars['BigInt']['output']>;
    gasPrice?: Maybe<Scalars['BigInt']['output']>;
};
type AuditInformation = {
    id: Scalars['ID']['output'];
    creation: Audit;
    lastModification: Audit;
    modifications: Array<Audit>;
};
type AuditInformation_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    creation?: InputMaybe<Scalars['String']['input']>;
    creation_not?: InputMaybe<Scalars['String']['input']>;
    creation_gt?: InputMaybe<Scalars['String']['input']>;
    creation_lt?: InputMaybe<Scalars['String']['input']>;
    creation_gte?: InputMaybe<Scalars['String']['input']>;
    creation_lte?: InputMaybe<Scalars['String']['input']>;
    creation_in?: InputMaybe<Array<Scalars['String']['input']>>;
    creation_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    creation_contains?: InputMaybe<Scalars['String']['input']>;
    creation_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_not_contains?: InputMaybe<Scalars['String']['input']>;
    creation_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_starts_with?: InputMaybe<Scalars['String']['input']>;
    creation_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    creation_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_ends_with?: InputMaybe<Scalars['String']['input']>;
    creation_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    creation_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    creation_?: InputMaybe<Audit_filter>;
    lastModification?: InputMaybe<Scalars['String']['input']>;
    lastModification_not?: InputMaybe<Scalars['String']['input']>;
    lastModification_gt?: InputMaybe<Scalars['String']['input']>;
    lastModification_lt?: InputMaybe<Scalars['String']['input']>;
    lastModification_gte?: InputMaybe<Scalars['String']['input']>;
    lastModification_lte?: InputMaybe<Scalars['String']['input']>;
    lastModification_in?: InputMaybe<Array<Scalars['String']['input']>>;
    lastModification_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    lastModification_contains?: InputMaybe<Scalars['String']['input']>;
    lastModification_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_contains?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_starts_with?: InputMaybe<Scalars['String']['input']>;
    lastModification_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_ends_with?: InputMaybe<Scalars['String']['input']>;
    lastModification_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    lastModification_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    lastModification_?: InputMaybe<Audit_filter>;
    modifications?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_not?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_contains?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_contains_nocase?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_not_contains?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_not_contains_nocase?: InputMaybe<Array<Scalars['String']['input']>>;
    modifications_?: InputMaybe<Audit_filter>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<AuditInformation_filter>>>;
    or?: InputMaybe<Array<InputMaybe<AuditInformation_filter>>>;
};
type Audit_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    blockNumber?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_not?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_gt?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_lt?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_gte?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_lte?: InputMaybe<Scalars['BigInt']['input']>;
    blockNumber_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    blockNumber_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    transactionHash?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_not?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_gt?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_lt?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_gte?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_lte?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    transactionHash_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    transactionHash_contains?: InputMaybe<Scalars['Bytes']['input']>;
    transactionHash_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    transactionTimestamp?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_not?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_gt?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_lt?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_gte?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_lte?: InputMaybe<Scalars['BigInt']['input']>;
    transactionTimestamp_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    transactionTimestamp_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    fromAddress?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_not?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    fromAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    fromAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;
    fromAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_not?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    toAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    toAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;
    toAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    valueTransferred?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_not?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_gt?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_lt?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_gte?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_lte?: InputMaybe<Scalars['BigInt']['input']>;
    valueTransferred_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    valueTransferred_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    gasPrice?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_not?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_gt?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_lt?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_gte?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_lte?: InputMaybe<Scalars['BigInt']['input']>;
    gasPrice_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    gasPrice_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<Audit_filter>>>;
    or?: InputMaybe<Array<InputMaybe<Audit_filter>>>;
};
type BlockChangedFilter = {
    number_gte: Scalars['Int']['input'];
};
type Module$1 = {
    id: Scalars['ID']['output'];
    moduleAddress: Scalars['Bytes']['output'];
    name: Scalars['String']['output'];
    description: Scalars['String']['output'];
    auditInformation: AuditInformation;
    chainName?: Maybe<Scalars['String']['output']>;
};
type Module_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    moduleAddress?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_not?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    moduleAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    moduleAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;
    moduleAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    name?: InputMaybe<Scalars['String']['input']>;
    name_not?: InputMaybe<Scalars['String']['input']>;
    name_gt?: InputMaybe<Scalars['String']['input']>;
    name_lt?: InputMaybe<Scalars['String']['input']>;
    name_gte?: InputMaybe<Scalars['String']['input']>;
    name_lte?: InputMaybe<Scalars['String']['input']>;
    name_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_contains?: InputMaybe<Scalars['String']['input']>;
    name_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_contains?: InputMaybe<Scalars['String']['input']>;
    name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description?: InputMaybe<Scalars['String']['input']>;
    description_not?: InputMaybe<Scalars['String']['input']>;
    description_gt?: InputMaybe<Scalars['String']['input']>;
    description_lt?: InputMaybe<Scalars['String']['input']>;
    description_gte?: InputMaybe<Scalars['String']['input']>;
    description_lte?: InputMaybe<Scalars['String']['input']>;
    description_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_contains?: InputMaybe<Scalars['String']['input']>;
    description_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_contains?: InputMaybe<Scalars['String']['input']>;
    description_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_?: InputMaybe<AuditInformation_filter>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<Module_filter>>>;
    or?: InputMaybe<Array<InputMaybe<Module_filter>>>;
};
type Module_orderBy = 'id' | 'moduleAddress' | 'name' | 'description' | 'auditInformation' | 'auditInformation__id';
/** Defines the order direction, either ascending or descending */
type OrderDirection = 'asc' | 'desc';
type Portal$1 = {
    id: Scalars['ID']['output'];
    ownerAddress: Scalars['Bytes']['output'];
    modules?: Maybe<Array<Scalars['Bytes']['output']>>;
    isRevocable: Scalars['Boolean']['output'];
    name: Scalars['String']['output'];
    description: Scalars['String']['output'];
    ownerName: Scalars['String']['output'];
    attestationCounter?: Maybe<Scalars['Int']['output']>;
    auditInformation: AuditInformation;
    chainName?: Maybe<Scalars['String']['output']>;
};
type Portal_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    ownerAddress?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_not?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_gt?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_lt?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_gte?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_lte?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    ownerAddress_not_in?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    ownerAddress_contains?: InputMaybe<Scalars['Bytes']['input']>;
    ownerAddress_not_contains?: InputMaybe<Scalars['Bytes']['input']>;
    modules?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    modules_not?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    modules_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    modules_not_contains?: InputMaybe<Array<Scalars['Bytes']['input']>>;
    isRevocable?: InputMaybe<Scalars['Boolean']['input']>;
    isRevocable_not?: InputMaybe<Scalars['Boolean']['input']>;
    isRevocable_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;
    isRevocable_not_in?: InputMaybe<Array<Scalars['Boolean']['input']>>;
    name?: InputMaybe<Scalars['String']['input']>;
    name_not?: InputMaybe<Scalars['String']['input']>;
    name_gt?: InputMaybe<Scalars['String']['input']>;
    name_lt?: InputMaybe<Scalars['String']['input']>;
    name_gte?: InputMaybe<Scalars['String']['input']>;
    name_lte?: InputMaybe<Scalars['String']['input']>;
    name_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_contains?: InputMaybe<Scalars['String']['input']>;
    name_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_contains?: InputMaybe<Scalars['String']['input']>;
    name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description?: InputMaybe<Scalars['String']['input']>;
    description_not?: InputMaybe<Scalars['String']['input']>;
    description_gt?: InputMaybe<Scalars['String']['input']>;
    description_lt?: InputMaybe<Scalars['String']['input']>;
    description_gte?: InputMaybe<Scalars['String']['input']>;
    description_lte?: InputMaybe<Scalars['String']['input']>;
    description_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_contains?: InputMaybe<Scalars['String']['input']>;
    description_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_contains?: InputMaybe<Scalars['String']['input']>;
    description_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName?: InputMaybe<Scalars['String']['input']>;
    ownerName_not?: InputMaybe<Scalars['String']['input']>;
    ownerName_gt?: InputMaybe<Scalars['String']['input']>;
    ownerName_lt?: InputMaybe<Scalars['String']['input']>;
    ownerName_gte?: InputMaybe<Scalars['String']['input']>;
    ownerName_lte?: InputMaybe<Scalars['String']['input']>;
    ownerName_in?: InputMaybe<Array<Scalars['String']['input']>>;
    ownerName_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    ownerName_contains?: InputMaybe<Scalars['String']['input']>;
    ownerName_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_contains?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName_starts_with?: InputMaybe<Scalars['String']['input']>;
    ownerName_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName_ends_with?: InputMaybe<Scalars['String']['input']>;
    ownerName_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    ownerName_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    attestationCounter?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_not?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_gt?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_lt?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_gte?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_lte?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_in?: InputMaybe<Array<Scalars['Int']['input']>>;
    attestationCounter_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;
    auditInformation?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_?: InputMaybe<AuditInformation_filter>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<Portal_filter>>>;
    or?: InputMaybe<Array<InputMaybe<Portal_filter>>>;
};
type Portal_orderBy = 'id' | 'ownerAddress' | 'modules' | 'isRevocable' | 'name' | 'description' | 'ownerName' | 'attestationCounter' | 'auditInformation' | 'auditInformation__id';
type Schema$1 = {
    id: Scalars['ID']['output'];
    name: Scalars['String']['output'];
    description: Scalars['String']['output'];
    context: Scalars['String']['output'];
    schema: Scalars['String']['output'];
    attestationCounter?: Maybe<Scalars['Int']['output']>;
    auditInformation: AuditInformation;
    chainName?: Maybe<Scalars['String']['output']>;
};
type Schema_filter = {
    id?: InputMaybe<Scalars['ID']['input']>;
    id_not?: InputMaybe<Scalars['ID']['input']>;
    id_gt?: InputMaybe<Scalars['ID']['input']>;
    id_lt?: InputMaybe<Scalars['ID']['input']>;
    id_gte?: InputMaybe<Scalars['ID']['input']>;
    id_lte?: InputMaybe<Scalars['ID']['input']>;
    id_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    id_not_in?: InputMaybe<Array<Scalars['ID']['input']>>;
    name?: InputMaybe<Scalars['String']['input']>;
    name_not?: InputMaybe<Scalars['String']['input']>;
    name_gt?: InputMaybe<Scalars['String']['input']>;
    name_lt?: InputMaybe<Scalars['String']['input']>;
    name_gte?: InputMaybe<Scalars['String']['input']>;
    name_lte?: InputMaybe<Scalars['String']['input']>;
    name_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    name_contains?: InputMaybe<Scalars['String']['input']>;
    name_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_contains?: InputMaybe<Scalars['String']['input']>;
    name_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    name_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    name_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    name_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description?: InputMaybe<Scalars['String']['input']>;
    description_not?: InputMaybe<Scalars['String']['input']>;
    description_gt?: InputMaybe<Scalars['String']['input']>;
    description_lt?: InputMaybe<Scalars['String']['input']>;
    description_gte?: InputMaybe<Scalars['String']['input']>;
    description_lte?: InputMaybe<Scalars['String']['input']>;
    description_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    description_contains?: InputMaybe<Scalars['String']['input']>;
    description_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_contains?: InputMaybe<Scalars['String']['input']>;
    description_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    description_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    description_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    description_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    context?: InputMaybe<Scalars['String']['input']>;
    context_not?: InputMaybe<Scalars['String']['input']>;
    context_gt?: InputMaybe<Scalars['String']['input']>;
    context_lt?: InputMaybe<Scalars['String']['input']>;
    context_gte?: InputMaybe<Scalars['String']['input']>;
    context_lte?: InputMaybe<Scalars['String']['input']>;
    context_in?: InputMaybe<Array<Scalars['String']['input']>>;
    context_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    context_contains?: InputMaybe<Scalars['String']['input']>;
    context_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    context_not_contains?: InputMaybe<Scalars['String']['input']>;
    context_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    context_starts_with?: InputMaybe<Scalars['String']['input']>;
    context_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    context_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    context_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    context_ends_with?: InputMaybe<Scalars['String']['input']>;
    context_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    context_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    context_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema?: InputMaybe<Scalars['String']['input']>;
    schema_not?: InputMaybe<Scalars['String']['input']>;
    schema_gt?: InputMaybe<Scalars['String']['input']>;
    schema_lt?: InputMaybe<Scalars['String']['input']>;
    schema_gte?: InputMaybe<Scalars['String']['input']>;
    schema_lte?: InputMaybe<Scalars['String']['input']>;
    schema_in?: InputMaybe<Array<Scalars['String']['input']>>;
    schema_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    schema_contains?: InputMaybe<Scalars['String']['input']>;
    schema_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_contains?: InputMaybe<Scalars['String']['input']>;
    schema_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_starts_with?: InputMaybe<Scalars['String']['input']>;
    schema_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    schema_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_ends_with?: InputMaybe<Scalars['String']['input']>;
    schema_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    schema_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    schema_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    attestationCounter?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_not?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_gt?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_lt?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_gte?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_lte?: InputMaybe<Scalars['Int']['input']>;
    attestationCounter_in?: InputMaybe<Array<Scalars['Int']['input']>>;
    attestationCounter_not_in?: InputMaybe<Array<Scalars['Int']['input']>>;
    auditInformation?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lt?: InputMaybe<Scalars['String']['input']>;
    auditInformation_gte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_lte?: InputMaybe<Scalars['String']['input']>;
    auditInformation_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_not_in?: InputMaybe<Array<Scalars['String']['input']>>;
    auditInformation_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_contains_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_starts_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with?: InputMaybe<Scalars['String']['input']>;
    auditInformation_not_ends_with_nocase?: InputMaybe<Scalars['String']['input']>;
    auditInformation_?: InputMaybe<AuditInformation_filter>;
    /** Filter for the block changed event. */
    _change_block?: InputMaybe<BlockChangedFilter>;
    and?: InputMaybe<Array<InputMaybe<Schema_filter>>>;
    or?: InputMaybe<Array<InputMaybe<Schema_filter>>>;
};
type Schema_orderBy = 'id' | 'name' | 'description' | 'context' | 'schema' | 'attestationCounter' | 'auditInformation' | 'auditInformation__id';
type MultichainAttestationsQueryQueryVariables = Exact<{
    chainNames: Array<Scalars['String']['input']> | Scalars['String']['input'];
    first?: InputMaybe<Scalars['Int']['input']>;
    skip?: InputMaybe<Scalars['Int']['input']>;
    where?: InputMaybe<Attestation_filter>;
    orderBy?: InputMaybe<Attestation_orderBy>;
    orderDirection?: InputMaybe<OrderDirection>;
}>;
type MultichainAttestationsQueryQuery = {
    multichainAttestations: Array<(Pick<Attestation$1, 'id' | 'chainName' | 'replacedBy' | 'attester' | 'attestedDate' | 'expirationDate' | 'revocationDate' | 'version' | 'revoked' | 'subject' | 'encodedSubject' | 'attestationData' | 'decodedData'> & {
        schema: Pick<Schema$1, 'id' | 'name' | 'description' | 'context' | 'schema' | 'attestationCounter'>;
        portal: Pick<Portal$1, 'id' | 'ownerAddress' | 'modules' | 'isRevocable' | 'name' | 'description' | 'ownerName' | 'attestationCounter'>;
    })>;
};
type MultichainPortalsQueryQueryVariables = Exact<{
    chainNames: Array<Scalars['String']['input']> | Scalars['String']['input'];
    first?: InputMaybe<Scalars['Int']['input']>;
    skip?: InputMaybe<Scalars['Int']['input']>;
    where?: InputMaybe<Portal_filter>;
    orderBy?: InputMaybe<Portal_orderBy>;
    orderDirection?: InputMaybe<OrderDirection>;
}>;
type MultichainPortalsQueryQuery = {
    multichainPortals: Array<Pick<Portal$1, 'chainName' | 'id' | 'ownerAddress' | 'modules' | 'isRevocable' | 'name' | 'description' | 'ownerName' | 'attestationCounter'>>;
};
type MultichainSchemasQueryQueryVariables = Exact<{
    chainNames: Array<Scalars['String']['input']> | Scalars['String']['input'];
    first?: InputMaybe<Scalars['Int']['input']>;
    skip?: InputMaybe<Scalars['Int']['input']>;
    where?: InputMaybe<Schema_filter>;
    orderBy?: InputMaybe<Schema_orderBy>;
    orderDirection?: InputMaybe<OrderDirection>;
}>;
type MultichainSchemasQueryQuery = {
    multichainSchemas: Array<Pick<Schema$1, 'chainName' | 'id' | 'name' | 'description' | 'context' | 'schema' | 'attestationCounter'>>;
};
type MultichainModulesQueryQueryVariables = Exact<{
    chainNames: Array<Scalars['String']['input']> | Scalars['String']['input'];
    first?: InputMaybe<Scalars['Int']['input']>;
    skip?: InputMaybe<Scalars['Int']['input']>;
    where?: InputMaybe<Module_filter>;
    orderBy?: InputMaybe<Module_orderBy>;
    orderDirection?: InputMaybe<OrderDirection>;
}>;
type MultichainModulesQueryQuery = {
    multichainModules: Array<Pick<Module$1, 'chainName' | 'id' | 'moduleAddress' | 'name' | 'description'>>;
};

interface Conf {
    chain: Chain;
    mode: SDKMode;
    subgraphUrl: string;
    portalRegistryAddress: Address;
    moduleRegistryAddress: Address;
    schemaRegistryAddress: Address;
    attestationRegistryAddress: Address;
    rpcUrl?: string;
    offchainConfig?: OffChainAttestationConfig;
    subgraphUrlOverrides?: Partial<Record<ChainName, string>>;
}
type AttestationPayload = {
    schemaId: string;
    expirationDate: number;
    subject: string;
    attestationData: object[];
};
type Attestation = OnChainAttestation & {
    id: string;
    decodedData: string[];
    decodedPayload: object;
    offchainData?: OffchainData;
    chainName?: string;
};
type OffchainData = {
    schemaId: string;
    uri: string;
    error?: string;
};
interface IPFSConfig {
    projectId: string;
    projectSecret: string;
    host?: string;
    port?: number;
    protocol?: string;
    timeout?: number;
    maxRetries?: number;
}
type OnChainAttestation = {
    attestationId: string;
    schema: Schema;
    replacedBy: string | null;
    attester: Address;
    portal: Portal;
    attestedDate: number;
    expirationDate: number;
    revocationDate: number | null;
    version: number;
    revoked: boolean;
    subject: string;
    encodedSubject: string;
    attestationData: string;
    ipfsConfig?: IPFSConfig;
};
type Schema = {
    id: string;
    name: string;
    description: string;
    context: string;
    schema: string;
    attestationCounter: number;
    chainName?: string;
};
type Portal = {
    id: Address;
    ownerAddress: Address;
    modules: Address[];
    isRevocable: boolean;
    name: string;
    description: string;
    ownerName: string;
    attestationCounter: number;
    chainName?: string;
};
type Module = OnChainModule & {
    id: string;
};
type OnChainModule = {
    moduleAddress: Address;
    name: string;
    description: string;
    chainName?: string;
};
type CrossChainClient = {
    MultichainAttestationsQuery(variables: MultichainAttestationsQueryQueryVariables, options?: unknown): Promise<MultichainAttestationsQueryQuery>;
    MultichainPortalsQuery(variables: MultichainPortalsQueryQueryVariables, options?: unknown): Promise<MultichainPortalsQueryQuery>;
    MultichainSchemasQuery(variables: MultichainSchemasQueryQueryVariables, options?: unknown): Promise<MultichainSchemasQueryQuery>;
    MultichainModulesQuery(variables: MultichainModulesQueryQueryVariables, options?: unknown): Promise<MultichainModulesQueryQuery>;
};
declare enum ChainName {
    LINEA_MAINNET = "verax-v2-linea",
    LINEA_SEPOLIA = "verax-v2-linea-sepolia",
    ARBITRUM_SEPOLIA = "verax-v2-arbitrum-sepolia",
    ARBITRUM_MAINNET = "verax-v2-arbitrum",
    BASE_MAINNET = "verax-v2-base",
    BASE_SEPOLIA = "verax-v2-base-sepolia",
    BSC_MAINNET = "verax-v2-bsc",
    BSC_TESTNET = "verax-v2-bsc-testnet"
}
type TransactionOptions = {
    waitForConfirmation?: boolean;
    value?: bigint;
    customAbi?: Abi;
};
interface OffChainAttestationConfig {
    projectId: string;
    projectSecret: string;
    host?: string;
    port?: number;
    protocol?: string;
    maxRetries?: number;
}
type OffChainAttestationPayload = AttestationPayload & {
    offchainData: {
        payload: unknown;
        schemaId: string;
    };
};
interface SchemaDefinition {
    title?: string;
    description?: string;
    properties: Record<string, unknown>;
    required?: string[];
    type: "object";
}
declare global {
    interface Window {
        ethereum: EIP1193Provider;
    }
}

declare abstract class BaseDataMapper<T, TFilter, TOrder> {
    protected readonly conf: Conf;
    protected readonly web3Client: PublicClient;
    protected readonly walletClient: WalletClient | undefined;
    protected readonly veraxSdk: VeraxSdk;
    protected abstract typeName: string;
    protected abstract gqlInterface: string;
    /**
     * Cache of cross-chain clients keyed by network type.
     * Maintains separate clients for mainnet and testnet to prevent cache pollution.
     */
    private crossChainClients;
    constructor(_conf: Conf, _web3Client: PublicClient, _veraxSdk: VeraxSdk, _walletClient?: WalletClient);
    /**
     * Gets a cross-chain client for the specified chain names.
     * Automatically infers the network type (mainnet/testnet) and returns
     * an appropriately isolated client to prevent cache pollution.
     *
     * @param chainNames - Array of chain names to query
     * @returns Promise resolving to a CrossChainClient
     * @throws Error if chain names mix mainnet and testnet
     */
    protected getCrossChainClient(chainNames: (ChainName | string)[]): Promise<CrossChainClient>;
    findOneById(id: string): Promise<T | undefined>;
    findBy(first?: number, skip?: number, where?: TFilter, orderBy?: TOrder, orderDirection?: OrderDirection): Promise<T[]>;
    findTotalCount(): Promise<any>;
}

declare class AttestationDataMapper extends BaseDataMapper<Attestation, Attestation_filter, Attestation_orderBy> {
    typeName: string;
    gqlInterface: string;
    findOneById(id: string): Promise<Attestation | undefined>;
    findBy(first?: number, skip?: number, where?: Attestation_filter, orderBy?: Attestation_orderBy, orderDirection?: OrderDirection): Promise<Attestation[]>;
    findByMultiChain(chainNames: ChainName[], first?: number, skip?: number, where?: Attestation_filter, orderBy?: Attestation_orderBy, orderDirection?: OrderDirection): Promise<Attestation[]>;
    getAttestationCountMultiChain(chainNames: ChainName[]): Promise<number>;
    private mapToAttestations;
    private enrichAttestation;
    getRelatedAttestations(id: string): Promise<Attestation[]>;
    simulateMassImport(portalAddress: Address, attestationPayloads: AttestationPayload[]): Promise<WriteContractParameters>;
    massImport(portalAddress: Address, attestationPayloads: AttestationPayload[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateIncrementVersionNumber(): Promise<WriteContractParameters>;
    incrementVersionNumber(options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    isRegistered(attestationId: string): Promise<unknown>;
    isRevocable(portalId: string): Promise<unknown>;
    getAttestation(attestationId: string): Promise<unknown>;
    getVersionNumber(): Promise<unknown>;
    getAttestationIdCounter(): Promise<unknown>;
    balanceOf(account: Address, id: number): Promise<unknown>;
    balanceOfBatch(accounts: Address[], ids: number[]): Promise<unknown>;
    private executeReadMethod;
    private executeReadMethodForChain;
    private simulateContract;
}

declare class SchemaDataMapper extends BaseDataMapper<Schema, Schema_filter, Schema_orderBy> {
    typeName: string;
    gqlInterface: string;
    findByMultiChain(chainNames: ChainName[], first?: number, skip?: number, where?: Schema_filter, orderBy?: Schema_orderBy, orderDirection?: OrderDirection): Promise<Schema[]>;
    private mapToSchemas;
    simulateCreate(name: string, description: string, context: string, schemaString: string): Promise<WriteContractParameters>;
    create(name: string, description: string, context: string, schemaString: string, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateUpdateContext(schemaId: string, context: string): Promise<WriteContractParameters>;
    updateContext(schemaId: string, context: string, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    getIdFromSchemaString(schema: string): Promise<unknown>;
    getSchema(schemaId: string): Promise<unknown>;
    getSchemasNumber(): Promise<any>;
    isRegistered(schemaId: string): Promise<unknown>;
    private executeReadMethod;
    private simulateContract;
}

declare class ModuleDataMapper extends BaseDataMapper<Module, Module_filter, Module_orderBy> {
    typeName: string;
    gqlInterface: string;
    findByMultiChain(chainNames: ChainName[], first?: number, skip?: number, where?: Module_filter, orderBy?: Module_orderBy, orderDirection?: OrderDirection): Promise<Module[]>;
    private mapToModules;
    simulateRegister(name: string, description: string, moduleAddress: Address): Promise<WriteContractParameters>;
    register(name: string, description: string, moduleAddress: Address, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateRunModules(modulesAddresses: Address[], attestationPayload: AttestationPayload, validationPayloads: string[], value?: bigint): Promise<WriteContractParameters>;
    runModules(modulesAddresses: Address[], attestationPayload: AttestationPayload, validationPayloads: string[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateBulkRunModules(modulesAddresses: Address[], attestationPayloads: AttestationPayload[], validationPayloads: string[][]): Promise<WriteContractParameters>;
    bulkRunModules(modulesAddresses: Address[], attestationPayloads: AttestationPayload[], validationPayloads: string[][], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    isContractAddress(contractAddress: Address): Promise<unknown>;
    getModulesNumber(): Promise<any>;
    isRegistered(moduleAddress: Address): Promise<unknown>;
    getModule(moduleAddress: Address): Promise<unknown>;
    private executeReadMethod;
    private simulateContract;
}

declare class PortalDataMapper extends BaseDataMapper<Portal, Portal_filter, Portal_orderBy> {
    typeName: string;
    gqlInterface: string;
    findByMultiChain(chainNames: ChainName[], first?: number, skip?: number, where?: Portal_filter, orderBy?: Portal_orderBy, orderDirection?: OrderDirection): Promise<Portal[]>;
    private mapToPortals;
    simulateAttest(portalAddress: Address, attestationPayload: AttestationPayload, validationPayloads: string[], options?: TransactionOptions): Promise<WriteContractParameters>;
    attest(portalAddress: Address, attestationPayload: AttestationPayload, validationPayloads: string[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateBulkAttest(portalAddress: Address, attestationPayloads: AttestationPayload[], validationPayloads: string[][], options?: TransactionOptions): Promise<WriteContractParameters>;
    simulateAttestOffChain(portalAddress: Address, attestationPayload: OffChainAttestationPayload, validationPayloads?: string[], options?: TransactionOptions): Promise<WriteContractParameters>;
    attestOffChain(portalAddress: Address, attestationPayload: OffChainAttestationPayload, validationPayloads?: string[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    bulkAttest(portalAddress: Address, attestationPayloads: AttestationPayload[], validationPayloads: string[][], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateRevoke(portalAddress: Address, attestationId: string, options?: TransactionOptions): Promise<WriteContractParameters>;
    revoke(portalAddress: Address, attestationId: string, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateBulkRevoke(portalAddress: Address, attestationIds: string[], options?: TransactionOptions): Promise<WriteContractParameters>;
    bulkRevoke(portalAddress: Address, attestationIds: string[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateReplace(portalAddress: Address, attestationId: string, attestationPayload: AttestationPayload, validationPayloads: string[], options?: TransactionOptions): Promise<WriteContractParameters>;
    replace(portalAddress: Address, attestationId: string, attestationPayload: AttestationPayload, validationPayloads: string[], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateBulkReplace(portalAddress: Address, attestationIds: string[], attestationPayloads: AttestationPayload[], validationPayloads: string[][], options?: TransactionOptions): Promise<WriteContractParameters>;
    bulkReplace(portalAddress: Address, attestationIds: string[], attestationPayloads: AttestationPayload[], validationPayloads: string[][], options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateRegister(id: Address, name: string, description: string, isRevocable: boolean, ownerName: string): Promise<WriteContractParameters>;
    register(id: Address, name: string, description: string, isRevocable: boolean, ownerName: string, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    simulateDeployDefaultPortal(modules: Address[], name: string, description: string, isRevocable: boolean, ownerName: string): Promise<WriteContractParameters>;
    deployDefaultPortal(modules: Address[], name: string, description: string, isRevocable: boolean, ownerName: string, options?: TransactionOptions): Promise<Partial<viem.TransactionReceipt>>;
    getPortalByAddress(address: Address): Promise<unknown>;
    getPortalOwner(address: Address): Promise<unknown>;
    getPortalRevocability(address: Address): Promise<unknown>;
    getPortalsNumber(): Promise<any>;
    isPortalRegistered(id: Address): Promise<unknown>;
    private executePortalRegistryReadMethod;
    private simulatePortalRegistryContract;
    private simulatePortalContract;
}

declare class UtilsDataMapper extends BaseDataMapper<object, unknown, unknown> {
    typeName: string;
    gqlInterface: string;
    getVersionNumber(): Promise<unknown>;
    encode(schema: string, values: unknown[]): Hex;
    decode(schema: string, attestationData: Hex): readonly unknown[];
}

declare class VeraxSdk {
    static DEFAULT_LINEA_MAINNET: Conf;
    static DEFAULT_LINEA_MAINNET_FRONTEND: Conf;
    static DEFAULT_LINEA_SEPOLIA: Conf;
    static DEFAULT_LINEA_SEPOLIA_FRONTEND: Conf;
    static DEFAULT_ARBITRUM_SEPOLIA: Conf;
    static DEFAULT_ARBITRUM_SEPOLIA_FRONTEND: Conf;
    static DEFAULT_ARBITRUM: Conf;
    static DEFAULT_ARBITRUM_FRONTEND: Conf;
    static DEFAULT_BASE_SEPOLIA: Conf;
    static DEFAULT_BASE_SEPOLIA_FRONTEND: Conf;
    static DEFAULT_BASE: Conf;
    static DEFAULT_BASE_FRONTEND: Conf;
    static DEFAULT_BSC_TESTNET: Conf;
    static DEFAULT_BSC_TESTNET_FRONTEND: Conf;
    static DEFAULT_BSC: Conf;
    static DEFAULT_BSC_FRONTEND: Conf;
    private readonly web3Client;
    private readonly walletClient;
    attestation: AttestationDataMapper;
    schema: SchemaDataMapper;
    module: ModuleDataMapper;
    portal: PortalDataMapper;
    utils: UtilsDataMapper;
    constructor(conf: Conf, publicAddress?: Address, privateKey?: Hex);
}

declare function encode(schema: string, values: unknown[]): Hex;
declare function decodeWithRetry(schema: string, attestationData: Hex): readonly unknown[];

declare function handleError(type: ActionType, err: unknown): never;

/**
 * Network type discriminator for cache isolation.
 * Mainnet and testnet use separate GraphQL Mesh instances to prevent cache pollution.
 */
type NetworkType = "mainnet" | "testnet";
/**
 * Determines if a chain name string represents a testnet.
 * Works with both ChainName enum values and raw subgraph names.
 */
declare function isTestnetChain(chainName: string): boolean;
/**
 * Gets the network type for a single chain name.
 */
declare function getNetworkTypeForChain(chainName: ChainName | string): NetworkType;
/**
 * Infers the network type from an array of chain names.
 * All chains must belong to the same network type (mainnet or testnet).
 *
 * @throws Error if chain names mix mainnet and testnet
 */
declare function inferNetworkType(chainNames: (ChainName | string)[]): NetworkType;
/**
 * Validates that all chain names belong to the expected network type.
 *
 * @throws Error if any chain doesn't match the expected network type
 */
declare function validateNetworkType(chainNames: (ChainName | string)[], expectedType: NetworkType): void;

/**
 * Creates a custom GraphQL Mesh SDK with URL overrides for multi-chain queries.
 * Falls back to default URLs if no override is provided for a specific chain.
 *
 * This function maintains network-type isolation: separate SDK instances
 * are created for mainnet and testnet to prevent cache pollution.
 *
 * @param urlOverrides - Optional map of chain names to custom subgraph URLs
 * @param networkType - The network type to use. If not provided, defaults to 'mainnet'.
 */
declare function getCustomGraphSDK(urlOverrides?: Partial<Record<ChainName, string>>, networkType?: NetworkType): Promise<CrossChainClient>;
/**
 * Gets a custom SDK for the given chain names, automatically inferring the network type.
 * Convenience method that combines getCustomGraphSDK with network type inference.
 *
 * @param chainNames - Array of chain names to query
 * @param urlOverrides - Optional map of chain names to custom subgraph URLs
 * @throws Error if chain names mix mainnet and testnet
 */
declare function getCustomGraphSDKForChains(chainNames: (ChainName | string)[], urlOverrides?: Partial<Record<ChainName, string>>): Promise<CrossChainClient>;
/**
 * Clears the custom SDK cache for a specific network type or all types.
 */
declare function clearCustomSDKCache(networkType?: NetworkType): void;

declare function getSubgraphUrlForChain(chainName: ChainName, conf: Conf): string;
declare function getConfiguredSubgraphUrl(conf: Conf): string;

/**
 * Mesh Instance Manager
 *
 * Manages isolated GraphQL Mesh instances per network type (mainnet/testnet).
 * This prevents cache pollution when switching between mainnet and testnet queries
 * in the same browser session.
 *
 * The core problem: GraphQL Mesh uses a singleton pattern with a shared cache.
 * Cache keys are based on query hash + variables, but don't include context.chainName.
 * When querying mainnet chains then testnet chains with identical query structures,
 * the cache returns stale mainnet data.
 *
 * Solution: Maintain separate Mesh instances with isolated caches per network type.
 */

/**
 * Gets or creates an SDK client for the specified network type.
 * This is the main entry point for cross-chain queries.
 */
declare function getSDKForNetworkType(networkType: NetworkType): Promise<CrossChainClient>;
/**
 * Gets an SDK client for the given chain names.
 * Automatically infers the network type from the chain names.
 *
 * @throws Error if chain names mix mainnet and testnet
 */
declare function getSDKForChains(chainNames: (ChainName | string)[]): Promise<CrossChainClient>;
/**
 * Clears cached Mesh instances and SDK clients.
 * Use this to force fresh instances on next query.
 *
 * @param networkType - If provided, only clears cache for that network type.
 *                      If omitted, clears all cached instances.
 */
declare function clearMeshCache(networkType?: NetworkType): Promise<void>;
/**
 * Gets the current state of cached instances (for debugging).
 */
declare function getMeshCacheStatus(): {
    mainnet: boolean;
    testnet: boolean;
};

export { ActionType, type Attestation, AttestationDataMapper, type AttestationPayload, type Attestation_filter, type Attestation_orderBy, ChainName, type Conf, Constants, type CrossChainClient, type IPFSConfig, type Module, ModuleDataMapper, type Module_filter, type Module_orderBy, type NetworkType, type OffChainAttestationConfig, type OffChainAttestationPayload, type OffchainData, type OnChainAttestation, type OnChainModule, type OrderDirection, type Portal, PortalDataMapper, type Portal_filter, type Portal_orderBy, SDKMode, type Schema, SchemaDataMapper, type SchemaDefinition, type Schema_filter, type Schema_orderBy, type TransactionOptions, UtilsDataMapper, VeraxSdk, clearCustomSDKCache, clearMeshCache, decodeWithRetry, encode, getConfiguredSubgraphUrl, getCustomGraphSDK, getCustomGraphSDKForChains, getMeshCacheStatus, getNetworkTypeForChain, getSDKForChains, getSDKForNetworkType, getSubgraphUrlForChain, handleError, inferNetworkType, isTestnetChain, validateNetworkType };
