import type { EventEmitter } from 'events';
import type { LogProvider } from '../logger.js';
import type { IApiTokenStore } from '../types/stores/api-token-store.js';
import { type Db, type IApiToken, type IApiTokenCreate, type IFlagResolver } from '../types/index.js';
import type { Knex } from 'knex';
export declare class ApiTokenStore implements IApiTokenStore {
    private logger;
    private timer;
    private db;
    constructor(db: Db, eventBus: EventEmitter, getLogger: LogProvider, _flagResolver: IFlagResolver);
    withTimer<T>(timerName: string, fn: () => Promise<T>): Promise<T>;
    count(): Promise<number>;
    countByType(): Promise<Map<string, number>>;
    getAll(): Promise<IApiToken[]>;
    getUserDefinedTokens(): Promise<IApiToken[]>;
    filterEdgeTokens(query: Knex.QueryBuilder<any, any>): Knex.QueryBuilder<any, any>;
    getAllActive(): Promise<IApiToken[]>;
    private makeTokenProjectQuery;
    insert(newToken: IApiTokenCreate, createdByUserId: number): Promise<IApiToken>;
    destroy(): void;
    exists(secret: string): Promise<boolean>;
    get(key: string): Promise<IApiToken>;
    delete(secret: string): Promise<void>;
    deleteAll(): Promise<void>;
    setExpiry(secret: string, expiresAt: Date): Promise<IApiToken>;
    markSeenAt(secrets: string[]): Promise<void>;
    countDeprecatedTokens(): Promise<{
        orphanedTokens: number;
        activeOrphanedTokens: number;
        legacyTokens: number;
        activeLegacyTokens: number;
    }>;
    countProjectTokens(projectId: string): Promise<number>;
}
//# sourceMappingURL=api-token-store.d.ts.map