import { AnchorMode, PostConditionMode } from "@stacks/transactions";
import type { UIntCV, ContractPrincipalCV } from "@stacks/transactions";
import type { FaktorySDKConfig, ReadResponse, TokenDeploymentInput, TokenDeploymentResponse, TokenTradesResponse, TransferVerification, VerifiedTokensResponse } from "./types";
export declare class FaktorySDK {
    SBTC_CONTRACT: {
        mainnet: {
            address: string;
            name: string;
            assetName: string;
        };
        testnet: {
            address: string;
            name: string;
            assetName: string;
        };
        devnet: {
            address: string;
            name: string;
            assetName: string;
        };
        mocknet: {
            address: string;
            name: string;
            assetName: string;
        };
    };
    private readonly apiHost;
    private readonly apiKey;
    private readonly network;
    private readonly hiroApiKey?;
    constructor(config: FaktorySDKConfig);
    private fetch;
    getTokenDeployParams(input: TokenDeploymentInput): Promise<TokenDeploymentResponse>;
    getBuyParams({ dexContract, inAmount, // amount is in STX or BTC units
    senderAddress, slippage, }: {
        dexContract: string;
        inAmount: number;
        senderAddress: string;
        slippage?: number;
    }): Promise<{
        contractAddress: string;
        contractName: string;
        functionName: string;
        functionArgs: Array<UIntCV | ContractPrincipalCV>;
        network: import("@stacks/network").StacksNetwork;
        anchorMode: AnchorMode;
        postConditionMode: PostConditionMode;
        postConditions: (import("@stacks/transactions").FungiblePostCondition | import("@stacks/transactions").STXPostCondition)[];
    }>;
    getSellParams({ dexContract, amount, // amount is in TOKEN units
    senderAddress, slippage, }: {
        dexContract: string;
        amount: number;
        senderAddress: string;
        slippage?: number;
    }): Promise<{
        contractAddress: string;
        contractName: string;
        functionName: string;
        functionArgs: Array<UIntCV | ContractPrincipalCV>;
        network: import("@stacks/network").StacksNetwork;
        anchorMode: AnchorMode;
        postConditionMode: PostConditionMode;
        postConditions: (import("@stacks/transactions").FungiblePostCondition | import("@stacks/transactions").STXPostCondition)[];
    }>;
    private isExternalDex;
    getIn(dexContract: string, senderAddress: string, stx: number): Promise<ReadResponse>;
    getOut(dexContract: string, senderAddress: string, amount: number): Promise<ReadResponse>;
    getOpen(dexContract: string, senderAddress: string): Promise<ReadResponse>;
    getVerifiedTokens(options?: {
        search?: string;
        sortOrder?: string;
        page?: number;
        limit?: number;
        daoOnly?: boolean;
    }): Promise<VerifiedTokensResponse>;
    getDaoTokens(options?: {
        search?: string;
        sortOrder?: string;
        page?: number;
        limit?: number;
    }): Promise<VerifiedTokensResponse>;
    private getTokenInfo;
    verifyTransfer(tokenAddress: string): Promise<TransferVerification>;
    getToken(dexContract: string): Promise<{
        success: boolean;
        data: {
            id: string;
            name: string;
            symbol: string;
            description: string;
            tokenContract: string;
            dexContract: string;
            txId: string | null;
            targetAmm: string;
            supply: number;
            decimals: number;
            targetStx: number;
            progress: number;
            price: number;
            price24hChanges: number;
            tradingVolume: number;
            holders: number;
            tokenToDex: string;
            tokenToDeployer: string;
            stxToDex: number;
            stxBuyFirstFee: number;
            logoUrl: string | null;
            mediaUrl: string | null;
            uri: string | null;
            twitter: string | null;
            website: string | null;
            telegram: string | null;
            discord: string | null;
            chatCount: number;
            txsCount: number;
            creatorAddress: string;
            deployedAt: string;
            tokenHash: string;
            tokenVerified: number;
            dexHash: string;
            dexVerified: number;
            tokenVerifiedAt: string;
            dexVerifiedAt: string;
            status: string;
            tokenChainhookUuid: string | null;
            tradingHookUuid: string | null;
            lastBuyHash: string | null;
            daoToken: boolean;
            priceUsd?: number;
            volumeUsd?: number;
            marketCap?: number;
            denomination: string;
        };
    }>;
    getTokenTrades(tokenContract: string): Promise<TokenTradesResponse>;
}
