import algosdk, { Transaction, SuggestedParams } from 'algosdk';
import { AuthCredentials, Signer, OrderSide } from '../interface/index.ts';
export declare class AlgodService {
    private client;
    private authCredentials;
    private indexerDomain;
    constructor(algodClient: algosdk.Algodv2, credentials: AuthCredentials, indexerDomain: string);
    isAppOptedIn(appLocalState: any, appId: number): boolean;
    isAssetOptedIn(balances: any, assetId: number): boolean;
    optInAsset(userAddress: string, assetIndex: number): Promise<Transaction>;
    makeAppCallTransaction(assetIndex: number, senderAddress: string, appId: number, args: any[], params?: any): Promise<algosdk.Transaction>;
    makeTransferTransaction(params: SuggestedParams, assetIndex: number, transferAmount: number, senderAddress: string, appAddress: string): Transaction | null;
    get signer(): Signer;
    set signer(value: Signer);
    signAndSend(txnGroup: Transaction[] | Transaction): Promise<any>;
    signAndSendData<TResponse>(data: object | string, signMessage: (msg: string, encoding?: BufferEncoding) => Promise<string>, sendAction: (signedData: {
        signature: string;
    }) => Promise<TResponse>, encoding?: BufferEncoding): Promise<TResponse>;
    getTxnParams(): Promise<SuggestedParams>;
    getCurrentAccount(): {
        addr: string;
        sk: Uint8Array;
    } | null;
    getAccountInfo(address: string): Promise<Record<string, any>>;
    constructArgsForAppCall(...args: any[]): Uint8Array<ArrayBufferLike>[];
    validateCredentials(): void;
    getAppState(appId: number): Promise<{}>;
    getSuperAppId(appId: number): Promise<any>;
    getPairBalances(appId: number, address: string): Promise<{
        [k: string]: any;
    }>;
    calculateTransferAmount(appId: number, address: string, side: OrderSide, quantity: number, price: number, decimal: number): Promise<number>;
}
