import { API, NameType } from '@wharfkit/antelope';
import { Signer } from '../eosio/transaction';
export interface VestingSettings {
    sales_start_date: string;
    launch_date: string;
}
export interface VestingAllocation {
    id: number;
    cliff_period_claimed: number;
    holder: string;
    time_since_sale_start: {
        _count: number;
    };
    tokens_claimed: string;
    tokens_allocated: string;
    vesting_category_type: number;
}
export declare class VestingContract {
    static singletonInstance: VestingContract;
    contractName: string;
    static get Instance(): VestingContract;
    static MAX_ALLOCATIONS: number;
    static calculateVestingPeriod(settings: VestingSettings, allocation: VestingAllocation): {
        launchDate: Date;
        vestingStart: Date;
        cliffEnd: Date;
        vestingEnd: Date;
    };
    constructor(contractName?: string);
    setSettings(salesDateStr: string, launchDateStr: string, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    assignTokens(sender: NameType, holder: NameType, amount: string, categoryId: number, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    withdraw(holder: NameType, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    migrateAllocation(sender: NameType, holder: NameType, allocationId: number, oldAmount: string, newAmount: string, oldCategoryId: number, newCategoryId: number, signer: Signer): Promise<API.v1.PushTransactionResponse>;
    getSettings(): Promise<VestingSettings>;
    getAllocations(account: NameType): Promise<VestingAllocation[]>;
    getBalance(account: NameType): Promise<number>;
}
//# sourceMappingURL=VestingContract.d.ts.map