import { AiUsageOsPlatform } from '@prisma/client';
export type AiUsageToolLiteral = 'claude-code' | 'codex-cli';
export declare const AI_USAGE_TOOL_VALUES: AiUsageToolLiteral[];
export declare class IngestionEventDto {
    rawMessageId: string;
    tool: AiUsageToolLiteral;
    sessionId: string;
    projectPath: string;
    model: string;
    ts: string;
    inputTokens: number;
    outputTokens: number;
    cacheCreationTokens: number;
    cacheReadTokens: number;
    estimatedCostUsd: string;
    gitBranch?: string;
    agentVersionEvent?: string;
    worktreeLabel?: string;
    cwdBasename?: string;
    turnIndex?: number;
    toolUseCount?: number;
    toolNames?: string[];
    stopReason?: string;
    serviceTier?: string;
}
export declare class IngestionBatchDto {
    events: IngestionEventDto[];
}
export declare class CreateTokenDto {
    name: string;
}
export declare class RevokeTokenDto {
    reason?: string;
}
export declare class BlockDeviceDto {
    reason: string;
}
export declare class UnblockDeviceDto {
    note?: string;
}
export declare class DashboardQueryDto {
    period?: 'today' | 'week' | 'month' | 'year' | 'last7d' | 'last30d' | 'last90d';
    from?: string;
    to?: string;
    granularity?: 'day' | 'week' | 'month';
    groupBy?: 'none' | 'tool' | 'model' | 'topUser' | 'user' | 'project';
    by?: 'user' | 'project' | 'tool' | 'model' | 'device';
    page?: number;
    pageSize?: number;
}
export declare class DeviceQueryDto {
    status?: 'all' | 'active' | 'blocked';
    q?: string;
    platform?: AiUsageOsPlatform;
    page?: number;
    pageSize?: number;
}
export declare class TokenQueryDto {
    userId?: string;
    status?: 'all' | 'active' | 'revoked';
    page?: number;
    pageSize?: number;
}
