import type { Db } from '../../../db/db.js';
import type { LogProvider } from '../../../logger.js';
type UnknownFlagEnvReport = {
    environment: string;
    seenAt: Date;
};
type UnknownFlagAppReport = {
    appName: string;
    environments: UnknownFlagEnvReport[];
};
export type UnknownFlag = {
    name: string;
    lastSeenAt: Date;
    lastEventAt?: Date;
    reports: UnknownFlagAppReport[];
};
export type UnknownFlagReport = {
    name: string;
    appName: string;
    lastSeenAt: Date;
    environment: string;
};
export type QueryParams = {
    limit?: number;
    orderBy?: {
        column: string;
        order: 'asc' | 'desc';
    }[];
};
type CountParams = {
    unique?: boolean;
};
export interface IUnknownFlagsStore {
    insert(flags: UnknownFlagReport[]): Promise<void>;
    getAll(params?: QueryParams): Promise<UnknownFlag[]>;
    clear(hoursAgo: number): Promise<void>;
    deleteAll(): Promise<void>;
    count(params?: CountParams): Promise<number>;
}
export declare class UnknownFlagsStore implements IUnknownFlagsStore {
    private db;
    private logger;
    constructor(db: Db, getLogger: LogProvider);
    insert(flags: UnknownFlagReport[]): Promise<void>;
    getAll({ limit, orderBy }?: QueryParams): Promise<UnknownFlag[]>;
    clear(hoursAgo: number): Promise<void>;
    deleteAll(): Promise<void>;
    count({ unique }?: CountParams): Promise<number>;
}
export {};
//# sourceMappingURL=unknown-flags-store.d.ts.map