/// <reference types="node" />
import { ApiPromise, Keyring } from '@polkadot/api';
import { bool, Bytes, Compact, Option, Text, u8, U8aFixed, u32, u64 } from '@polkadot/types';
import { CompactEncodable } from '@polkadot/types/codec/types';
import { AccountData, AccountId, AccountInfo, Balance, Block, Call, EventRecord, Hash, Header, Index, Moment, Permill, RefCount, Signature, SignedBlock } from '@polkadot/types/interfaces';
import { Codec, IEvent } from '@polkadot/types/types';
import { NormalizedCacheObject } from 'apollo-cache-inmemory';
import ApolloClient from 'apollo-client';
import { BigNumber } from 'bignumber.js';
import { EventEmitter } from 'events';
import { AffirmationStatus, AgentGroup, AGId, AssetComplianceResult, AssetIdentifier, AssetName, AssetOwnershipRelation, AssetPermissions, AssetType, Authorization, AuthorizationData, AuthorizationType as MeshAuthorizationType, CACheckpoint, CAId, CAKind, CalendarPeriod, CalendarUnit, CanTransferResult, CddId, CddStatus, CheckpointId, CheckpointSchedule, Claim, Claim1stKey, ClaimType as MeshClaimType, ClassicTickerRegistration, ComplianceRequirement, ComplianceRequirementResult, Condition, ConditionResult, ConditionType, CorporateAction, CountryCode, CustomAssetTypeId, DidRecord, DispatchableName, DispatchableNames, Distribution, Document, DocumentHash, DocumentName, DocumentType, DocumentUri, EcdsaSignature, EthereumAddress, ExtrinsicPermissions, FundingRoundName, Fundraiser, FundraiserName, FundraiserStatus, FundraiserTier, GranularCanTransferResult, IdentityClaim, IdentityId, IdentityRole, Instruction, InstructionStatus, InvestorZKProofData, MovePortfolioItem, PalletName, PalletPermissions, Permissions, Pip, PipId, PipsMetadata, PortfolioId, PortfolioKind, PortfolioPermissions, PortfolioValidityResult, PosRatio, PriceTier, ProposalState, RecordDate, RecordDateSpec, RistrettoPoint, Scalar, ScheduleId, ScheduleSpec, Scope, ScopeClaimProof as MeshScopeClaimProof, ScopeId, SecondaryKey as MeshSecondaryKey, SecurityToken, SettlementType, Signatory, StoredSchedule, Subsidy as MeshSubsidy, TargetIdentities, TargetIdentity, TargetTreatment, Tax, Ticker, TickerRegistration, TickerRegistrationConfig, TransferManager, TransferManagerResult, TrustedFor, TrustedIssuer, Venue, VenueDetails, VenueType, ZkProofData } from "../../polkadot/types";
import { SinonStub, SinonStubbedInstance } from 'sinon';
import { Account, AuthorizationRequest, Context, Identity } from "../../internal";
import { Mocked } from "../types";
import { AccountBalance, CheckPermissionsResult, CheckRolesResult, ClaimData, ClaimType, CountryCode as CountryCodeEnum, DistributionWithDetails, ExtrinsicData, PermissionedAccount, ResultSet, SignerType, Subsidy } from "../../types";
import { Consts, Extrinsics, GraphqlQuery, PolymeshTx, Queries } from "../../types/internal";
import { ArgsType } from "../../types/utils";
export declare type MockContext = Mocked<Context>;
export declare enum MockTxStatus {
    Ready = "Ready",
    Succeeded = "Succeeded",
    Failed = "Failed",
    Aborted = "Aborted",
    Rejected = "Rejected",
    Intermediate = "Intermediate",
    InBlock = "InBlock",
    BatchFailed = "BatchFailed",
    FinalizedFailed = "FinalizedFailed"
}
interface Pair {
    address: string;
    meta: Record<string, unknown>;
    publicKey: string;
    isLocked?: boolean;
}
interface ContextOptions {
    did?: string;
    withSeed?: boolean;
    balance?: AccountBalance;
    subsidy?: Omit<Subsidy, 'beneficiary'>;
    hasRoles?: boolean;
    checkRoles?: CheckRolesResult;
    hasPermissions?: boolean;
    checkPermissions?: CheckPermissionsResult<SignerType.Account>;
    hasAssetPermissions?: boolean;
    checkAssetPermissions?: CheckPermissionsResult<SignerType.Identity>;
    validCdd?: boolean;
    assetBalance?: BigNumber;
    invalidDids?: string[];
    transactionFee?: BigNumber;
    currentPairAddress?: string;
    currentPairIsLocked?: boolean;
    issuedClaims?: ResultSet<ClaimData>;
    getIdentity?: Identity;
    getIdentityClaimsFromChain?: ClaimData[];
    getIdentityClaimsFromMiddleware?: ResultSet<ClaimData>;
    primaryAccount?: string;
    secondaryAccounts?: PermissionedAccount[];
    transactionHistory?: ResultSet<ExtrinsicData>;
    latestBlock?: BigNumber;
    middlewareEnabled?: boolean;
    middlewareAvailable?: boolean;
    sentAuthorizations?: ResultSet<AuthorizationRequest>;
    isArchiveNode?: boolean;
    ss58Format?: number;
    areSecondaryAccountsFrozen?: boolean;
    getDividendDistributionsForAssets?: DistributionWithDetails[];
    isFrozen?: boolean;
    addPair?: Pair;
    getAccounts?: Account[];
    currentIdentityIsEqual?: boolean;
    networkVersion?: string;
    supportsSubsidy?: boolean;
}
interface KeyringOptions {
    getPair?: Pair;
    getPairs?: Pair[];
    addFromUri?: Pair;
    addFromSeed?: Pair;
    addFromMnemonic?: Pair;
    addPair?: Pair;
    encodeAddress?: string;
    /**
     * @hidden
     * Whether keyring functions should throw
     */
    error?: boolean;
}
export interface StubQuery {
    entries: SinonStub;
    entriesPaged: SinonStub;
    at: SinonStub;
    multi: SinonStub;
    size: SinonStub;
}
export declare enum TxFailReason {
    BadOrigin = "BadOrigin",
    CannotLookup = "CannotLookup",
    Module = "Module",
    Other = "Other"
}
export declare const mockPolkadotModule: (path: string) => () => Record<string, unknown>;
export declare const mockContextModule: (path: string) => () => Record<string, unknown>;
export declare const mockApolloModule: (path: string) => () => Record<string, unknown>;
export declare const mockWebSocketAsPromisedModule: () => () => unknown;
/**
 * @hidden
 *
 * Temporarily change instance mock configuration (calling .reset will go back to the configuration passed in `initMocks`)
 */
export declare function configureMocks(opts?: {
    contextOptions?: ContextOptions;
    keyringOptions?: KeyringOptions;
}): void;
/**
 * @hidden
 * Initialize the factory by adding default all-purpose functionality to the mock manager
 *
 * @param opts.mockContext - if defined, the internal [[Context]] class will also be mocked with custom properties
 */
export declare function initMocks(opts?: {
    contextOptions?: ContextOptions;
    keyringOptions?: KeyringOptions;
}): void;
/**
 * @hidden
 * Restore instances to their original state
 */
export declare function cleanup(): void;
/**
 * @hidden
 * Reinitialize mocks
 */
export declare function reset(): void;
/**
 * @hidden
 * Create and returns a mocked transaction. Each call will create a new version of the stub
 *
 * @param mod - name of the module
 * @param tx - name of the transaction function
 * @param autoResolve - if set to a status, the transaction will resolve immediately with that status.
 *  If set to false, the transaction lifecycle will be controlled by [[updateTxStatus]]
 */
export declare function createTxStub<ModuleName extends keyof Extrinsics, TransactionName extends keyof Extrinsics[ModuleName]>(mod: ModuleName, tx: TransactionName, opts?: {
    autoResolve?: MockTxStatus | false;
    gas?: Balance;
    meta?: {
        args: Array<{
            name: string;
            type: string;
        }>;
    };
}): PolymeshTx<ArgsType<Extrinsics[ModuleName][TransactionName]>> & SinonStub;
/**
 * @hidden
 * Create and return an apollo query stub
 *
 * @param query - apollo document node
 * @param returnValue
 */
export declare function createApolloQueryStub(query: GraphqlQuery<any>, returnData: unknown): SinonStub;
/**
 * @hidden
 * Create and return an apollo stub for multiple queries
 *
 * @param queries - query and returnData for each stubbed query
 */
export declare function createApolloMultipleQueriesStub(queries: {
    query: GraphqlQuery<any>;
    returnData: unknown;
}[]): SinonStub;
/**
 * @hidden
 * Create and return a query stub
 *
 * @param mod - name of the module
 * @param query - name of the query function
 */
export declare function createQueryStub<ModuleName extends keyof Queries, QueryName extends keyof Queries[ModuleName]>(mod: ModuleName, query: QueryName, opts?: {
    returnValue?: unknown;
    entries?: [unknown[], unknown][];
    multi?: unknown;
    size?: number;
}): Queries[ModuleName][QueryName] & SinonStub & StubQuery;
/**
 * @hidden
 * Create and return a rpc stub
 *
 * @param mod - name of the module
 * @param rpc - name of the rpc function
 */
export declare function createRpcStub(mod: string, rpc: string, opts?: {
    returnValue?: unknown;
}): SinonStub;
/**
 * @hidden
 * Set a consts mock
 *
 * @param mod - name of the module
 * @param constName - name of the constant
 */
export declare function setConstMock<ModuleName extends keyof Consts, ConstName extends keyof Consts[ModuleName]>(mod: ModuleName, constName: ConstName, opts: {
    returnValue: unknown;
}): void;
/**
 * @hidden
 */
export declare function getQueryMultiStub(): SinonStub;
/**
 * @hidden
 * Update the status of an existing mock transaction. Will throw an error if the transaction has already been resolved
 *
 * @param tx - transaction to update
 * @param status - new status
 */
export declare function updateTxStatus<ModuleName extends keyof Extrinsics, TransactionName extends keyof Extrinsics[ModuleName]>(tx: PolymeshTx<ArgsType<Extrinsics[ModuleName][TransactionName]>>, status: MockTxStatus, failReason?: TxFailReason): void;
/**
 * @hidden
 * Make calls to `Middleware.query` throw an error
 */
export declare function throwOnMiddlewareQuery(err?: unknown): void;
/**
 * @hidden
 * Make calls to `Context.create` throw an error
 */
export declare function throwOnContextCreation(): void;
/**
 * @hidden
 * Make calls to `ApiPromise.create` throw an error
 */
export declare function throwOnApiCreation(error?: unknown): void;
/**
 * @hidden
 * Sets the `accountBalance` function in the mocked Context to return the specified amount
 *
 * @param balance - new account balance
 */
export declare function setContextAccountBalance(balance: AccountBalance): void;
/**
 * @hidden
 * Retrieve an instance of the mocked Polkadot API
 */
export declare function getApiInstance(): ApiPromise & SinonStubbedInstance<ApiPromise> & EventEmitter;
/**
 * @hidden
 * Retrieve an instance of the mocked Apollo Client
 */
export declare function getMiddlewareApi(): ApolloClient<NormalizedCacheObject> & SinonStubbedInstance<ApolloClient<NormalizedCacheObject>>;
/**
 * @hidden
 * Retrieve the stub of the createType method
 */
export declare function getCreateTypeStub(): SinonStub;
/**
 * @hidden
 * Retrieve an instance of the mocked Context
 */
export declare function getContextInstance(opts?: ContextOptions): MockContext;
/**
 * @hidden
 * Retrieve the stub of the `Context.create` method
 */
export declare function getContextCreateStub(): SinonStub;
/**
 * @hidden
 * Retrieve an instance of the mocked Keyring
 */
export declare function getKeyringInstance(opts?: KeyringOptions): Mocked<Keyring>;
/**
 * @hidden
 */
export declare const setRuntimeVersion: (args: unknown) => void;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockIdentityId: (did?: string | IdentityId | undefined) => IdentityId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAgentGroup: (agentGroup?: {
    Custom: AGId;
} | "Full" | "ExceptMeta" | "PolymeshV1Caa" | "PolymeshV1Pia" | undefined) => AgentGroup;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockEcdsaSignature: (signature?: string | EcdsaSignature | undefined) => EcdsaSignature;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockEthereumAddress: (address?: string | EthereumAddress | undefined) => EthereumAddress;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTicker: (ticker?: string | Ticker | undefined) => Ticker;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAccountId: (accountId?: string | undefined) => AccountId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockBalance: (balance?: number | Balance | undefined) => Balance;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDocumentName: (name?: string | undefined) => DocumentName;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDocumentUri: (uri?: string | undefined) => DocumentUri;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDocumentHash: (hash?: DocumentHash | "None" | {
    H128: U8aFixed;
} | {
    H160: U8aFixed;
} | {
    H192: U8aFixed;
} | {
    H224: U8aFixed;
} | {
    H256: U8aFixed;
} | {
    H320: U8aFixed;
} | {
    H384: U8aFixed;
} | {
    H512: U8aFixed;
} | undefined) => DocumentHash;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDocumentType: (name?: string | undefined) => DocumentType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockOption: <T extends Codec>(wrapped?: T | Option<T> | null) => Option<T>;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCompact: <T extends CompactEncodable>(wrapped?: T | null) => Compact<T>;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockMoment: (millis?: number | Moment | undefined) => Moment;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTickerRegistration: (registration?: TickerRegistration | {
    owner: IdentityId | Parameters<typeof createMockIdentityId>[0];
    expiry: Option<Moment> | Parameters<typeof createMockOption>[0];
} | undefined) => TickerRegistration;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockU8: (value?: number | undefined) => u8;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockU32: (value?: number | u32 | undefined) => u32;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockU64: (value?: number | u64 | undefined) => u64;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPermill: (value?: number | Permill | undefined) => Permill;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockBytes: (value?: string | undefined) => Bytes;
/**
 * @hidden
 */
export declare const createMockHash: (value?: string | Hash | undefined) => Hash;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAssetName: (name?: string | undefined) => AssetName;
/**
 * @hidden
 */
export declare const createMockPosRatio: (numerator: number, denominator: number) => PosRatio;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockBool: (value?: boolean | bool | undefined) => bool;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPortfolioKind: (portfolioKind?: PortfolioKind | "Default" | {
    User: u64;
} | undefined) => PortfolioKind;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPortfolioId: (portfolioId?: PortfolioId | {
    did: IdentityId | Parameters<typeof createMockIdentityId>[0];
    kind: PortfolioKind | Parameters<typeof createMockPortfolioKind>[0];
} | undefined) => PortfolioId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockMovePortfolioItem: (movePortfolioItem?: {
    ticker: Ticker;
    amount: Balance;
} | undefined) => MovePortfolioItem;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAssetType: (assetType?: {
    Custom: CustomAssetTypeId;
} | "EquityCommon" | "EquityPreferred" | "Commodity" | "FixedIncome" | "Reit" | "Fund" | "RevenueShareAgreement" | "StructuredProduct" | "Derivative" | "StableCoin" | undefined) => AssetType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTickerRegistrationConfig: (regConfig?: {
    max_ticker_length: u8;
    registration_length: Option<Moment>;
} | undefined) => TickerRegistrationConfig;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSecurityToken: (token?: {
    total_supply: Balance;
    owner_did: IdentityId;
    divisible: bool;
    asset_type: AssetType;
} | undefined) => SecurityToken;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDocument: (document?: {
    uri: DocumentUri;
    content_hash: DocumentHash;
    name: DocumentName;
    doc_type: Option<DocumentType>;
    filing_date: Option<Moment>;
} | undefined) => Document;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPalletPermissions: (permissions?: {
    pallet_name: PalletName | Parameters<typeof createMockPalletName>[0];
    dispatchable_names: DispatchableNames | Parameters<typeof createMockDispatchableNames>[0];
} | undefined) => PalletPermissions;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAccountData: (accountData?: {
    free: Balance | Parameters<typeof createMockBalance>[0];
    reserved: Balance | Parameters<typeof createMockBalance>[0];
    miscFrozen: Balance | Parameters<typeof createMockBalance>[0];
    feeFrozen: Balance | Parameters<typeof createMockBalance>[0];
} | undefined) => AccountData;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockIndex: (value?: number | undefined) => Index;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockRefCount: (value?: number | undefined) => RefCount;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAccountInfo: (accountInfo?: {
    nonce: Index;
    refcount: RefCount;
    data: AccountData;
} | undefined) => AccountInfo;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSubsidy: (subsidy?: {
    paying_key: AccountId;
    remaining: Balance;
} | undefined) => MeshSubsidy;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSignatory: (signatory?: {
    Identity: IdentityId;
} | {
    Account: AccountId;
} | undefined) => Signatory;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAuthorizationType: (authorizationType?: "NoData" | "AttestPrimaryKeyRotation" | "RotatePrimaryKey" | "TransferTicker" | "AddMultiSigSigner" | "TransferAssetOwnership" | "JoinIdentity" | "Custom" | undefined) => MeshAuthorizationType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockU8aFixed: (value?: string | undefined, hex?: boolean | undefined) => U8aFixed;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAssetIdentifier: (identifier?: {
    Isin: U8aFixed;
} | {
    Cusip: U8aFixed;
} | {
    Cins: U8aFixed;
} | {
    Lei: U8aFixed;
} | undefined) => AssetIdentifier;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockFundingRoundName: (roundName?: string | undefined) => FundingRoundName;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPalletName: (name?: string | PalletName | undefined) => PalletName;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDispatchableName: (name?: string | DispatchableName | undefined) => DispatchableName;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockFundraiserName: (name?: string | undefined) => FundraiserName;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPermissions: (permissions?: {
    asset: AssetPermissions;
    extrinsic: ExtrinsicPermissions;
    portfolio: PortfolioPermissions;
} | undefined) => Permissions;
/**
 * @hidden
 */
export declare const createMockAssetPermissions: (assetPermissions?: "Whole" | {
    These: Ticker[];
} | {
    Except: Ticker[];
} | undefined) => AssetPermissions;
/**
 * @hidden
 */
export declare const createMockExtrinsicPermissions: (assetPermissions?: "Whole" | {
    These: PalletPermissions[];
} | {
    Except: PalletPermissions[];
} | undefined) => ExtrinsicPermissions;
/**
 * @hidden
 */
export declare const createMockPortfolioPermissions: (assetPermissions?: "Whole" | {
    These: PortfolioId[];
} | {
    Except: PortfolioId[];
} | undefined) => PortfolioPermissions;
/**
 * @hidden
 */
export declare const createMockDispatchableNames: (dispatchableNames?: DispatchableNames | "Whole" | {
    These: DispatchableName[];
} | {
    Except: DispatchableName[];
} | undefined) => DispatchableNames;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAuthorizationData: (authorizationData?: AuthorizationData | "RotatePrimaryKey" | {
    AttestPrimaryKeyRotation: IdentityId;
} | {
    TransferTicker: Ticker;
} | {
    AddMultiSigSigner: AccountId;
} | {
    TransferAssetOwnership: Ticker;
} | {
    JoinIdentity: Permissions;
} | {
    PortfolioCustody: PortfolioId;
} | {
    AddRelayerPayingKey: [AccountId, AccountId, Balance];
} | {
    BecomeAgent: [Ticker, AgentGroup];
} | undefined) => AuthorizationData;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAuthorization: (authorization?: {
    authorization_data: AuthorizationData | Parameters<typeof createMockAuthorizationData>[0];
    authorized_by: IdentityId | Parameters<typeof createMockIdentityId>[0];
    expiry: Option<Moment>;
    auth_id: u64 | Parameters<typeof createMockU64>[0];
} | undefined) => Authorization;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockEventRecord: (data: unknown[]) => EventRecord;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockIEvent: <T extends Codec[]>(data: unknown[]) => IEvent<T>;
/**
 * @hidden
 */
export declare const createMockCddStatus: (cddStatus?: {
    Ok: IdentityId;
} | {
    Err: Bytes;
} | undefined) => CddStatus;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCountryCode: (name?: CountryCodeEnum | undefined) => CountryCode;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockScope: (scope?: {
    Identity: IdentityId;
} | {
    Ticker: Ticker;
} | {
    Custom: Bytes;
} | undefined) => Scope;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCddId: (cddId?: string | undefined) => CddId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockScopeId: (scopeId?: string | undefined) => ScopeId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockInvestorZKProofData: (proof?: string | undefined) => InvestorZKProofData;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockClaim: (claim?: "NoData" | {
    Accredited: Scope;
} | {
    Affiliate: Scope;
} | {
    BuyLockup: Scope;
} | {
    SellLockup: Scope;
} | {
    CustomerDueDiligence: CddId;
} | {
    KnowYourCustomer: Scope;
} | {
    Jurisdiction: [CountryCode, Scope];
} | {
    Exempted: Scope;
} | {
    Blocked: Scope;
} | {
    InvestorUniqueness: [Scope, ScopeId, CddId];
} | {
    InvestorUniquenessV2: CddId;
} | undefined) => Claim;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockIdentityClaim: (identityClaim?: {
    claim_issuer: IdentityId;
    issuance_date: Moment;
    last_update_date: Moment;
    expiry: Option<Moment>;
    claim: Claim;
} | undefined) => IdentityClaim;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTargetIdentity: (targetIdentity?: "ExternalAgent" | {
    Specific: IdentityId;
} | undefined) => TargetIdentity;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockConditionType: (conditionType?: ConditionType | {
    IsPresent: Claim;
} | {
    IsAbsent: Claim;
} | {
    IsAnyOf: Claim[];
} | {
    IsNoneOf: Claim[];
} | {
    IsIdentity: TargetIdentity;
} | undefined) => ConditionType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockClaimType: (claimType?: ClaimType | undefined) => MeshClaimType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockClaim1stKey: (claim1stKey?: {
    target: IdentityId;
    claim_type: MeshClaimType;
} | undefined) => Claim1stKey;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTrustedFor: (trustedFor?: "Any" | {
    Specific: MeshClaimType[];
} | undefined) => TrustedFor;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTrustedIssuer: (issuer?: {
    issuer: IdentityId;
    trusted_for: TrustedFor;
} | undefined) => TrustedIssuer;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCondition: (condition?: {
    condition_type: ConditionType | Parameters<typeof createMockConditionType>[0];
    issuers: (TrustedIssuer | Parameters<typeof createMockTrustedIssuer>[0])[];
} | undefined) => Condition;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockConditionResult: (conditionResult?: {
    condition: Condition | Parameters<typeof createMockCondition>[0];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => ConditionResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockComplianceRequirement: (complianceRequirement?: {
    sender_conditions: Condition[];
    receiver_conditions: Condition[];
    id: u32;
} | undefined) => ComplianceRequirement;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockComplianceRequirementResult: (complianceRequirementResult?: {
    sender_conditions: (ConditionResult | Parameters<typeof createMockConditionResult>[0])[];
    receiver_conditions: (ConditionResult | Parameters<typeof createMockConditionResult>[0])[];
    id: u32 | Parameters<typeof createMockU32>[0];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => ComplianceRequirementResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAssetComplianceResult: (assetComplianceResult?: {
    paused: bool | Parameters<typeof createMockBool>[0];
    requirements: (ComplianceRequirementResult | Parameters<typeof createMockComplianceRequirementResult>[0])[];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => AssetComplianceResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDidRecord: (didRecord?: {
    roles: IdentityRole[];
    primary_key: AccountId;
    secondary_keys: MeshSecondaryKey[];
} | undefined) => DidRecord;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCanTransferResult: (canTransferResult?: {
    Ok: u8;
} | {
    Err: Bytes;
} | undefined) => CanTransferResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockText: (value?: string | Text | undefined) => Text;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAssetOwnershipRelation: (assetOwnershipRelation?: "NotOwned" | "TickerOwned" | "AssetOwned" | undefined) => AssetOwnershipRelation;
/**
 * @hidden
 */
export declare const createMockProposalState: (proposalState?: "Pending" | "Rejected" | "Cancelled" | {
    Custom: Bytes;
} | "Killed" | "Referendum" | undefined) => ProposalState;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPip: (pip?: {
    id: u32;
    proposal: Call;
    state: ProposalState;
} | undefined) => Pip;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPipsMetadata: (metadata?: {
    proposer: AccountId;
    cool_off_until: u32;
    end: u32;
} | undefined) => PipsMetadata;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSecondaryKey: (secondaryKey?: {
    signer: Signatory;
    permissions: Permissions;
} | undefined) => MeshSecondaryKey;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPipId: (id: number | BigNumber) => PipId;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockVenueDetails: (details?: string | undefined) => VenueDetails;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockVenueType: (venueType?: "Distribution" | "Other" | "Sto" | "Exchange" | undefined) => VenueType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockVenue: (venue?: {
    creator: IdentityId;
    venue_type: VenueType;
} | undefined) => Venue;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockInstructionStatus: (instructionStatus?: "Pending" | "Failed" | "Unknown" | undefined) => InstructionStatus;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSettlementType: (settlementType?: {
    SettleOnBlock: u32;
} | "SettleOnAffirmation" | undefined) => SettlementType;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockAffirmationStatus: (authorizationStatus?: "Pending" | "Unknown" | "Affirmed" | undefined) => AffirmationStatus;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockInstruction: (instruction?: {
    instruction_id: u64;
    venue_id: u64;
    status: InstructionStatus;
    settlement_type: SettlementType;
    created_at: Option<Moment>;
    trade_date: Option<Moment>;
    value_date: Option<Moment>;
} | undefined) => Instruction;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTransferManager: (transferManager?: TransferManager | {
    CountTransferManager: u64;
} | {
    PercentageTransferManager: Permill;
} | undefined) => TransferManager;
/**
 * @hidden
 */
export declare const createMockFundraiserTier: (fundraiserTier?: {
    total: Balance;
    price: Balance;
    remaining: Balance;
} | undefined) => FundraiserTier;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockFundraiserStatus: (fundraiserStatus?: "Live" | "Frozen" | "Closed" | "ClosedEarly" | undefined) => FundraiserStatus;
/**
 * @hidden
 */
export declare const createMockFundraiser: (fundraiser?: {
    creator: IdentityId;
    offering_portfolio: PortfolioId;
    offering_asset: Ticker;
    raising_portfolio: PortfolioId;
    raising_asset: Ticker;
    tiers: FundraiserTier[];
    venue_id: u64;
    start: Moment;
    end: Option<Moment>;
    status: FundraiserStatus;
    minimum_investment: Balance;
} | undefined) => Fundraiser;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPriceTier: (priceTier?: {
    total: Balance;
    price: Balance;
} | undefined) => PriceTier;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCalendarUnit: (calendarUnit?: CalendarUnit | "Second" | "Minute" | "Hour" | "Day" | "Week" | "Month" | "Year" | undefined) => CalendarUnit;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCalendarPeriod: (calendarPeriod?: CalendarPeriod | {
    unit: CalendarUnit | Parameters<typeof createMockCalendarUnit>[0];
    amount: u64 | Parameters<typeof createMockU64>[0];
} | undefined) => CalendarPeriod;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCheckpointSchedule: (checkpointSchedule?: CheckpointSchedule | {
    start: Moment | Parameters<typeof createMockMoment>[0];
    period: CalendarPeriod | Parameters<typeof createMockCalendarPeriod>[0];
} | undefined) => CheckpointSchedule;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockStoredSchedule: (storedSchedule?: StoredSchedule | {
    schedule: CheckpointSchedule | Parameters<typeof createMockCheckpointSchedule>[0];
    id: u64 | Parameters<typeof createMockU64>[0];
    at: Moment | Parameters<typeof createMockMoment>[0];
    remaining: u32 | Parameters<typeof createMockU32>[0];
} | undefined) => StoredSchedule;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockScheduleSpec: (scheduleSpec?: ScheduleSpec | {
    start: Option<Moment> | Parameters<typeof createMockOption>[0];
    period: CalendarPeriod | Parameters<typeof createMockCalendarPeriod>[0];
    remaining: u32 | Parameters<typeof createMockU32>[0];
} | undefined) => ScheduleSpec;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockScalar: (scalar?: string | Scalar | undefined) => Scalar;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockRecordDateSpec: (recordDateSpec?: RecordDateSpec | {
    Scheduled: Moment;
} | {
    ExistingSchedule: ScheduleId;
} | {
    Existing: CheckpointId;
} | undefined) => RecordDateSpec;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockRistrettoPoint: (ristrettoPoint?: string | RistrettoPoint | undefined) => RistrettoPoint;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCACheckpoint: (caCheckpoint?: CACheckpoint | {
    Scheduled: [ScheduleId, u64];
} | {
    Existing: CheckpointId;
} | undefined) => CACheckpoint;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockRecordDate: (recordDate?: RecordDate | {
    date: Moment | Parameters<typeof createMockMoment>[0];
    checkpoint: CACheckpoint | Parameters<typeof createMockCACheckpoint>[0];
} | undefined) => RecordDate;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSignature: (signature?: string | Signature | undefined) => Signature;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockZkProofData: (zkProofData?: ZkProofData | {
    challenge_responses: [Scalar, Scalar] | [string, string];
    subtract_expressions_res: RistrettoPoint | string;
    blinded_scope_did_hash: RistrettoPoint | string;
} | undefined) => ZkProofData;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTargetTreatment: (targetTreatment?: TargetTreatment | "Include" | "Exclude" | undefined) => TargetTreatment;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTargetIdentities: (targetIdentities?: TargetIdentities | {
    identities: (IdentityId | Parameters<typeof createMockIdentityId>[0])[];
    treatment: TargetTreatment | Parameters<typeof createMockTargetTreatment>[0];
} | undefined) => TargetIdentities;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockScopeClaimProof: (scopeClaimProof?: MeshScopeClaimProof | {
    proof_scope_id_wellformed: Signature | string;
    proof_scope_id_cdd_id_match: ZkProofData | {
        challenge_responses: [string, string];
        subtract_expressions_res: string;
        blinded_scope_did_hash: string;
    };
    scope_id: RistrettoPoint | string;
} | undefined) => MeshScopeClaimProof;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCAKind: (caKind?: CAKind | "PredictableBenefit" | "UnpredictableBenefit" | "IssuerNotice" | "Reorganization" | "Other" | undefined) => CAKind;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCorporateAction: (corporateAction?: {
    kind: CAKind | Parameters<typeof createMockCAKind>[0];
    decl_date: Moment | Parameters<typeof createMockMoment>[0];
    record_date: Option<RecordDate> | Parameters<typeof createMockOption>[0];
    targets: TargetIdentities | Parameters<typeof createMockTargetIdentities>[0];
    default_withholding_tax: Tax | Parameters<typeof createMockPermill>[0];
    withholding_tax: [
        IdentityId | Parameters<typeof createMockIdentityId>[0],
        Tax | Parameters<typeof createMockPermill>[0]
    ][];
} | undefined) => CorporateAction;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockCAId: (caId?: CAId | {
    ticker: Ticker | Parameters<typeof createMockTicker>[0];
    local_id: u64 | Parameters<typeof createMockU64>[0];
} | undefined) => CAId;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockDistribution: (distribution?: {
    from: PortfolioId | Parameters<typeof createMockPortfolioId>[0];
    currency: Ticker | Parameters<typeof createMockTicker>[0];
    per_share: Balance | Parameters<typeof createMockBalance>[0];
    amount: Balance | Parameters<typeof createMockBalance>[0];
    remaining: Balance | Parameters<typeof createMockBalance>[0];
    reclaimed: bool | Parameters<typeof createMockBool>[0];
    payment_at: Moment | Parameters<typeof createMockMoment>[0];
    expires_at: Option<Moment> | Parameters<typeof createMockOption>[0];
} | undefined) => Distribution;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockTransferManagerResult: (transferManagerResult?: {
    tm: TransferManager | Parameters<typeof createMockTransferManager>[0];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => TransferManagerResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockPortfolioValidityResult: (portfolioValidityResult?: {
    receiver_is_same_portfolio: bool | Parameters<typeof createMockBool>[0];
    sender_portfolio_does_not_exist: bool | Parameters<typeof createMockBool>[0];
    receiver_portfolio_does_not_exist: bool | Parameters<typeof createMockBool>[0];
    sender_insufficient_balance: bool | Parameters<typeof createMockBool>[0];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => PortfolioValidityResult;
/**
 * @hidden
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockGranularCanTransferResult: (granularCanTransferResult?: {
    invalid_granularity: bool | Parameters<typeof createMockBool>[0];
    self_transfer: bool | Parameters<typeof createMockBool>[0];
    invalid_receiver_cdd: bool | Parameters<typeof createMockBool>[0];
    invalid_sender_cdd: bool | Parameters<typeof createMockBool>[0];
    missing_scope_claim: bool | Parameters<typeof createMockBool>[0];
    receiver_custodian_error: bool | Parameters<typeof createMockBool>[0];
    sender_custodian_error: bool | Parameters<typeof createMockBool>[0];
    sender_insufficient_balance: bool | Parameters<typeof createMockBool>[0];
    portfolio_validity_result: PortfolioValidityResult | Parameters<typeof createMockPortfolioValidityResult>[0];
    asset_frozen: bool | Parameters<typeof createMockBool>[0];
    statistics_result: (TransferManagerResult | Parameters<typeof createMockTransferManagerResult>[0])[];
    compliance_result: AssetComplianceResult | Parameters<typeof createMockAssetComplianceResult>[0];
    result: bool | Parameters<typeof createMockBool>[0];
} | undefined) => GranularCanTransferResult;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockClassicTickerRegistration: (registration?: ClassicTickerRegistration | {
    eth_owner: EthereumAddress | Parameters<typeof createMockEthereumAddress>[0];
    is_created: bool | Parameters<typeof createMockBool>[0];
} | undefined) => ClassicTickerRegistration;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockSignedBlock: (signedBlock?: SignedBlock | {
    block: Block | Parameters<typeof createMockBlock>[0];
} | undefined) => SignedBlock;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockBlock: (block?: Block | {
    header: Header | Parameters<typeof createMockHeader>[0];
} | undefined) => Block;
/**
 * NOTE: `isEmpty` will be set to true if no value is passed
 */
export declare const createMockHeader: (header?: Header | {
    parentHash: Hash | Parameters<typeof createMockHash>[0];
    number: Compact<u32>;
    stateRoot: Hash | Parameters<typeof createMockHash>[0];
    extrinsicsRoot: Hash | Parameters<typeof createMockHash>[0];
} | undefined) => Header;
export {};
//# sourceMappingURL=dataSources.d.ts.map