import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface PoolStateFields {
    admin: Address;
    pendingAdmin: Address;
    basePoolAuthority: Address;
    basePoolAuthorityBump: BN;
    unstakingSolMint: Address;
    wsolVault: Address;
    actionAuthority: Address;
    poolLookupTable: Address;
    sharesIssued: BN;
    wsolUnstaking: BN;
    wsolInVault: BN;
    padding: Array<BN>;
}
export interface PoolStateJSON {
    admin: string;
    pendingAdmin: string;
    basePoolAuthority: string;
    basePoolAuthorityBump: string;
    unstakingSolMint: string;
    wsolVault: string;
    actionAuthority: string;
    poolLookupTable: string;
    sharesIssued: string;
    wsolUnstaking: string;
    wsolInVault: string;
    padding: Array<string>;
}
export declare class PoolState {
    readonly admin: Address;
    readonly pendingAdmin: Address;
    readonly basePoolAuthority: Address;
    readonly basePoolAuthorityBump: BN;
    readonly unstakingSolMint: Address;
    readonly wsolVault: Address;
    readonly actionAuthority: Address;
    readonly poolLookupTable: Address;
    readonly sharesIssued: BN;
    readonly wsolUnstaking: BN;
    readonly wsolInVault: BN;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<PoolState>;
    constructor(fields: PoolStateFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<PoolState | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<PoolState | null>>;
    static decode(data: Buffer): PoolState;
    toJSON(): PoolStateJSON;
    static fromJSON(obj: PoolStateJSON): PoolState;
}
//# sourceMappingURL=PoolState.d.ts.map