import BigNumber from 'bignumber.js';
import { Asset, Context, Entity, Identity } from "../../internal";
import { IdentityBalance, PaginationOptions, ResultSet } from "../../types";
export interface UniqueIdentifiers {
    id: BigNumber;
    ticker: string;
}
interface HumanReadable {
    id: string;
    ticker: string;
}
/**
 * Represents a snapshot of the Asset's holders and their respective balances
 *   at a certain point in time
 */
export declare class Checkpoint extends Entity<UniqueIdentifiers, HumanReadable> {
    /**
     * @hidden
     * Check if a value is of type [[UniqueIdentifiers]]
     */
    static isUniqueIdentifiers(identifier: unknown): identifier is UniqueIdentifiers;
    /**
     * Checkpoint identifier number
     */
    id: BigNumber;
    /**
     * Asset whose balances are being recorded in this Checkpoint
     */
    asset: Asset;
    /**
     * @hidden
     */
    constructor(identifiers: UniqueIdentifiers, context: Context);
    /**
     * Retrieve the Asset's total supply at this checkpoint
     */
    totalSupply(): Promise<BigNumber>;
    /**
     * Retrieve this Checkpoint's creation date
     */
    createdAt(): Promise<Date>;
    /**
     * Retrieve all Asset Holder balances at this Checkpoint
     *
     * @note supports pagination
     */
    allBalances(paginationOpts?: PaginationOptions): Promise<ResultSet<IdentityBalance>>;
    /**
     * Retrieve the balance of a specific Asset Holder Identity at this Checkpoint
     *
     * @param args.identity - defaults to the signing Identity
     */
    balance(args?: {
        identity: string | Identity;
    }): Promise<BigNumber>;
    /**
     * Determine whether this Checkpoint exists on chain
     */
    exists(): Promise<boolean>;
    /**
     * Return the Checkpoint's ticker and identifier
     */
    toJson(): HumanReadable;
}
export {};
//# sourceMappingURL=Checkpoint.d.ts.map