import type { EventEmitter } from 'events';
import type { LogProvider } from '../logger.js';
import type { PublicSignupTokenSchema } from '../openapi/spec/public-signup-token-schema.js';
import type { IPublicSignupTokenStore } from '../types/stores/public-signup-token-store.js';
import type { IPublicSignupTokenCreate } from '../types/models/public-signup-token.js';
import type { Db } from './db.js';
export declare class PublicSignupTokenStore implements IPublicSignupTokenStore {
    private timer;
    private db;
    constructor(db: Db, eventBus: EventEmitter, _getLogger: LogProvider);
    count(): Promise<number>;
    private makeTokenUsersQuery;
    getAll(): Promise<PublicSignupTokenSchema[]>;
    addTokenUser(secret: string, userId: number): Promise<void>;
    insert(newToken: IPublicSignupTokenCreate): Promise<PublicSignupTokenSchema>;
    isValid(secret: string): Promise<boolean>;
    destroy(): void;
    exists(secret: string): Promise<boolean>;
    get(key: string): Promise<PublicSignupTokenSchema>;
    delete(secret: string): Promise<void>;
    deleteAll(): Promise<void>;
    update(secret: string, { expiresAt, enabled }: {
        expiresAt?: Date;
        enabled?: boolean;
    }): Promise<PublicSignupTokenSchema>;
}
//# sourceMappingURL=public-signup-token-store.d.ts.map