/// <reference types="node" />
import { Program } from "@project-serum/anchor";
import { AccountInfo, Connection, PublicKey, TransactionInstruction } from "@solana/web3.js";
import { SSLLayout as SSLLayout } from "../layouts";
export declare class SSL {
    inner: SSLLayout;
    address: PublicKey;
    static loadByMint(connection: Connection, controller: PublicKey, mint: PublicKey, programId?: PublicKey): Promise<SSL | undefined>;
    static loadByAddress(connection: Connection, address: PublicKey, programId?: PublicKey): Promise<SSL | undefined>;
    static liabilityVault(connection: Connection, controller: PublicKey, mint: PublicKey, otherMint?: PublicKey, programId?: PublicKey): Promise<AccountInfo<Buffer> | null>;
    static findAddress(controller: PublicKey, mint: PublicKey, programId?: PublicKey): PublicKey;
    constructor(ai: AccountInfo<Buffer>, programId?: PublicKey);
    isSuspended(): boolean;
    deposit(program: Program, controller: PublicKey, wallet: PublicKey, amount: bigint, programId?: PublicKey): Promise<TransactionInstruction>;
    static getLiquidityAccountAddress(controller: PublicKey, mint: PublicKey, wallet: PublicKey, programId: PublicKey): PublicKey;
    get controller(): PublicKey;
    get mint(): PublicKey;
    get decimals(): number;
    poolTokenMint(programId?: PublicKey): PublicKey;
    get suspended(): boolean;
    get weight(): bigint;
    get swappedLiabilityNative(): bigint;
    get totalShare(): bigint;
}
