import { OpUnitType, QUnitType } from 'dayjs';
import mongoose from 'mongoose';
import { PoolConfig, Reward } from './types';
declare const init: ({ mongoUrl, debug, cleanUpPools, }: {
    mongoUrl: string;
    debug?: boolean | undefined;
    cleanUpPools?: boolean | undefined;
}) => Promise<{
    listPools: () => Promise<(mongoose.Document<unknown, {}, import("./types").IPool> & Omit<import("./types").IPool & {
        _id: mongoose.Types.ObjectId;
    }, never>)[]>;
    createPool: ({ poolKey, name, startTime, endTime, period, initialAmount, config, data, }: {
        poolKey: string;
        name: string;
        startTime: Date;
        endTime: Date;
        period?: "date" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "milliseconds" | "seconds" | "minutes" | "hours" | "days" | "months" | "years" | "dates" | "d" | "D" | "M" | "y" | "h" | "m" | "s" | "ms" | "quarter" | "quarters" | "Q" | "week" | "weeks" | "w" | undefined;
        initialAmount: number;
        config?: PoolConfig | undefined;
        data?: {
            [key: string]: any;
        } | undefined;
    }) => Promise<mongoose.Document<unknown, {}, import("./types").IPool> & Omit<import("./types").IPool & {
        _id: mongoose.Types.ObjectId;
    }, never>>;
    enablePool: (poolKey: string) => Promise<void>;
    disablePool: (poolKey: string) => Promise<void>;
    draw: ({ poolKeys, accessRate, timestamp, }: {
        poolKeys: string[];
        accessRate?: number | undefined;
        timestamp?: Date | undefined;
    }) => Promise<Reward | undefined>;
}>;
export { init };
export default init;
//# sourceMappingURL=index.d.ts.map