import type { TransactionEnvelope } from "@saberhq/solana-contrib";
import type { PublicKey } from "@solana/web3.js";
import type { EscrowHistoryData, LockerHistoryData, SnapshotsProgram } from "../../programs/snapshots";
import type { SnapshotsSDK } from "../../sdk";
/**
 * Handles interacting with the Snapshots program.
 */
export declare class SnapshotsWrapper {
    readonly sdk: SnapshotsSDK;
    readonly program: SnapshotsProgram;
    /**
     * Constructor for a {@link SnapshotsWrapper}.
     * @param sdk
     */
    constructor(sdk: SnapshotsSDK);
    get provider(): import("@saberhq/solana-contrib").AugmentedProvider;
    fetchLockerHistory(key: PublicKey): Promise<LockerHistoryData | null>;
    fetchEscrowHistory(key: PublicKey): Promise<EscrowHistoryData | null>;
    /**
     * Creates a Locker History.
     * @returns
     */
    createLockerHistory({ locker, era, }: {
        locker: PublicKey;
        era: number;
    }): Promise<{
        lockerHistory: PublicKey;
        tx: TransactionEnvelope;
    }>;
    /**
     * Creates an Escrow History.
     * @returns
     */
    createEscrowHistory({ escrow, era, }: {
        escrow: PublicKey;
        era: number;
    }): Promise<{
        escrowHistory: PublicKey;
        tx: TransactionEnvelope;
    }>;
    /**
     * Synchronizes an EscrowHistory.
     * @returns
     */
    sync({ locker, owner, era, }: {
        locker: PublicKey;
        owner: PublicKey;
        era: number;
    }): Promise<TransactionEnvelope>;
}
//# sourceMappingURL=snapshots.d.ts.map