import 'isomorphic-fetch';
import { CONTRACT_INTERFACES, IContract, IFiatMintRequest, IFiatMintResult, IPaging, IPortfolioAssetRequest, IPortfolioRequest, IPortfolioResult, IStrategyChain, IStrategyIdeaChain, IdeaCreatedEvent, IdeaCreationResult, IxilyAssistedFiatMint } from '../../';
import CI = CONTRACT_INTERFACES;
export declare const ProvableIdeasModule: {
    clientOnly: {
        createIdea: (payload: CI.ICreateIdeaRequest, gasAggressivity?: number, contract?: IContract, ixilyAssistedFiatMint?: IxilyAssistedFiatMint, cached?: {
            chainOfStrategy: IStrategyChain;
            cachedStrategyState: CI.IStrategyState;
        }) => Promise<IdeaCreationResult>;
        createPortfolioEntry: (payload: IPortfolioAssetRequest, gasAggressivity?: number, contract?: IContract, ixilyAssistedFiatMint?: IxilyAssistedFiatMint, cached?: {
            chainOfStrategy: IStrategyChain;
            cachedStrategyState: CI.IStrategyState;
        }) => Promise<IdeaCreationResult>;
        createPortfolio: (payload: IPortfolioRequest, gasAggressivity?: number, contract?: IContract, ixilyAssistedFiatMint?: IxilyAssistedFiatMint, cached?: {
            chainOfStrategy: IStrategyChain;
            cachedStrategyState: CI.IStrategyState;
        }) => Promise<{
            step: {
                kindStep: 'open' | 'adjust' | 'close' | 'void';
                createIdeaRequest?: CI.ICreateIdeaRequest;
                adjustIdeaRequest?: CI.IAdjustIdeaRequest;
                closeIdeaRequest?: CI.ICloseIdeaRequest;
                price?: CI.IValidPrice;
            };
            result: IPortfolioResult;
        }[]>;
        createNormalizedTradeIdea: (tradeIdea: CI.ITradeIdea, gasAggressivity?: number, contract?: IContract, ixilyAssistedFiatMint?: IxilyAssistedFiatMint, cached?: {
            chainOfStrategy: IStrategyChain;
            cachedStrategyState: CI.IStrategyState;
        }) => Promise<IdeaCreationResult>;
        adjustIdea: (payload: CI.IAdjustIdeaRequest, contract?: IContract, adjustDisabled?: boolean, gasAggressivity?: number, ixilyAssistedFiatMint?: IxilyAssistedFiatMint) => Promise<IdeaCreationResult | CI.ITradeIdea>;
        closeIdea: (payload: CI.ICloseIdeaRequest, contract?: IContract, closeDisabled?: boolean, gasAggressivity?: number, ixilyAssistedFiatMint?: IxilyAssistedFiatMint) => Promise<IdeaCreationResult | CI.ITradeIdea>;
        giveIdeaAccessTo: (ideaNftId: number, clientAddresses: string[], contract?: IContract) => Promise<void>;
        authorizeProvider: (provider: string, contract?: IContract) => Promise<void>;
        revokeProvider: (provider: string, contract?: IContract) => Promise<void>;
        authorizeCheck: (provider: string, contract?: IContract) => Promise<boolean>;
    };
    providerOnly: {
        providerCreateIdea: (client: string, createIdeaRequest: CI.ICreateIdeaRequest, blockchainNetwork: string, contractName: string, gasAggressivity?: number, contract?: IContract) => Promise<IdeaCreationResult>;
        providerAdjustIdea: (client: string, payload: CI.IAdjustIdeaRequest, blockchainNetwork: string, contractName: string, gasAggressivity?: number, contract?: IContract) => Promise<IdeaCreationResult>;
        providerCloseIdea: (client: string, payload: CI.ICloseIdeaRequest, blockchainNetwork: string, contractName: string, gasAggressivity?: number, contract?: IContract) => Promise<IdeaCreationResult>;
        providerCreateFiatMintIdea: (client: string, mintPayload: IFiatMintRequest, contractName: string, contract?: IContract) => Promise<IFiatMintResult>;
        providerCheck: (provider: string, contract?: IContract) => Promise<boolean>;
    };
    general: {
        getIdeaByNftId: (ideaNft: number, decrypt?: boolean, inflateImages?: boolean, contract?: IContract) => Promise<CONTRACT_INTERFACES.ITradeIdea>;
        listAllStrategies: (contract?: IContract) => Promise<any[]>;
        listStrategies: (creator?: string, contract?: IContract) => Promise<any[]>;
        listIdeas: (strategyKey: string, creator?: string, contract?: IContract) => Promise<number[]>;
        listStages: (strategyKey: string, ideaKey: number, creator?: string, contract?: IContract) => Promise<number[]>;
        getIdeaNftIdByKeys: (creator: string, strategyKey: string, ideaKey: number, stageKey: number, contract?: IContract) => Promise<number>;
        getIdeaByKeys: (_strategyKey: string, _ideaKey: number, _stageKey: number, creator?: string, contract?: IContract) => Promise<CI.ITradeIdea>;
        getMetadataByBlockId: (blockId: number, decryptIdea?: boolean, contract?: IContract) => Promise<{
            blockNumber: number;
            nftId: number;
            data: any;
            cid: string;
            ipfsUrl: string;
            withAccess: boolean;
        }>;
        getIdeaMetadataByKeys: (_strategyKey: string, _ideaKey: number, _stageKey: number, creator?: string, contract?: IContract) => Promise<string>;
        getCurrentStrategyTickers: (strategyChainOrStrategyKey: IStrategyChain | string, creator?: string, contract?: IContract) => Promise<{
            ticker: string;
            ideaKey: number;
        }[]>;
        getStrategyChain: (strategyKey: string, creator?: string, contract?: IContract) => Promise<IStrategyChain>;
        getValidatedStrategyChain: (strategyKey: string, creator?: string, contract?: IContract, inflateImages?: boolean) => Promise<IStrategyChain>;
        getOwnedByNfts: (owner?: string, contract?: IContract) => Promise<any>;
        getCreatedByNfts: (creator?: string, contract?: IContract) => Promise<number[]>;
        getCreatedByIdeas: (creator?: string, page?: number, limit?: number, filterKind?: CI.ITradeIdeaIdeaKind, contract?: IContract) => Promise<IPaging<CI.ITradeIdea>>;
        getOwnedByIdeas: (creator?: string, page?: number, limit?: number, filterKind?: CI.ITradeIdeaIdeaKind, contract?: IContract) => Promise<IPaging<any>>;
        getCreatorOfNftIdea: (nftIdea: number, contract?: IContract) => Promise<string>;
        getAllIdeasUserCanSee: (user?: string, page?: number, limit?: number, filterKind?: CI.ITradeIdeaIdeaKind, contract?: IContract) => Promise<IPaging<any>>;
        getAllPublicClosedIdeas: (page?: number, limit?: number, contract?: IContract) => Promise<IPaging<CI.ITradeIdea>>;
        getIdeaViewers: (nftId: number, contract?: IContract) => Promise<string[]>;
        getExistingNftByStrategyRefAndTicker: (strategyReference: string, ticker: string, filterKind?: CI.ITradeIdeaIdeaKind, creator?: string, contract?: IContract) => Promise<CI.ITradeIdea | undefined>;
        getExistingNftByStrategyRefAndTickerWithCache: (strategyReference: string, ticker: string, filterKind?: CI.ITradeIdeaIdeaKind, creator?: string, contract?: IContract) => Promise<{
            tradeIdea: CI.ITradeIdea | undefined;
            cached: {
                chainOfStrategy: IStrategyChain;
                cachedStrategyState: CI.IStrategyState;
            };
        }>;
        getPricingInfo: (pricing: CI.ITradeIdeaPricing, ticker: string, tracker?: string, croupierUrl?: string) => Promise<CI.IValidPrice>;
    };
    canonical: {
        getLastBlock: (contract?: IContract) => Promise<number>;
        readEvents: (contract?: IContract, fromBlock?: number, toBlock?: number) => Promise<IdeaCreatedEvent[]>;
        listStrategyReferences: (creator?: string, contract?: IContract) => Promise<string[]>;
        getStrategyIdeasCanonical: (strategyReference: string, creator?: string, contract?: IContract) => Promise<CI.ITradeIdea[]>;
        listStrategyReferencesCanonical: (creator?: string, contract?: IContract) => Promise<string[]>;
        listStrategiesDetailsCanonical: (creator?: string, contract?: IContract) => Promise<CI.ITradeIdeaStrategy[]>;
        listIdeasCanonical: (creator?: string, contract?: IContract) => Promise<CI.ITradeIdea[]>;
    };
    fiatMint: {
        createIdea: (payload: CI.ICreateIdeaRequest, apiKey: string, customOrigin?: string, gasAggressivity?: number) => Promise<IdeaCreationResult>;
        createNormalizedTradeIdea: (payload: CI.ITradeIdea, apiKey: string, customOrigin?: string, gasAggressivity?: number) => Promise<IdeaCreationResult>;
        adjustIdea: (payload: CI.IAdjustIdeaRequest, apiKey: string, customOrigin?: string, gasAggressivity?: number) => Promise<CONTRACT_INTERFACES.ITradeIdea | IdeaCreationResult>;
        closeIdea: (payload: CI.ICloseIdeaRequest, apiKey: string, customOrigin?: string, gasAggressivity?: number) => Promise<CONTRACT_INTERFACES.ITradeIdea | IdeaCreationResult>;
    };
    chain: {
        getValidatedStrategyChainWithCache: (strategyKey: string, creator?: string, contract?: IContract, inflateImages?: boolean, nftIdReduceStep?: number) => Promise<{
            result: IStrategyChain;
            cache: {
                ideas: IStrategyIdeaChain[];
                nullifiedIdeas: Map<number, Set<number>>;
                cachedStrategy: CI.IStrategyState;
            };
        }>;
        getValidatedStrategyChain: (strategyKey: string, creator?: string, contract?: IContract, inflateImages?: boolean) => Promise<IStrategyChain>;
    };
    util: {
        normalizeCreateIdeaRequest: (createIdeaRequest: CI.ICreateIdeaRequest) => CI.ITradeIdea;
    };
};
