export interface DashboardOverviewDto {
    totalTokens: number;
    totalCost: number;
    totalRequests: number;
    successRate: number;
    avgLatencyMs: number;
    activeProviders: number;
    totalProviders: number;
    providerBreakdown: ProviderBreakdownDto[];
}
export interface ProviderBreakdownDto {
    providerId: string;
    providerCode: string;
    providerName: string;
    totalTokens: number;
    totalCost: number;
    requestCount: number;
    costPercentage: number;
}
export interface ProviderUsageDto {
    providerId: string;
    providerCode: string;
    providerName: string;
    totalTokens: number;
    totalCost: number;
    requestCount: number;
}
export interface ModelUsageDto {
    modelName: string;
    providerId: string;
    providerCode: string;
    totalTokens: number;
    totalCost: number;
    requestCount: number;
    avgLatencyMs: number;
}
export interface DailyCostDto {
    date: string;
    providerId: string;
    providerCode: string;
    providerName: string;
    totalInputTokens: number;
    totalOutputTokens: number;
    totalTokens: number;
    totalCost: number;
    requestCount: number;
    successCount: number;
    errorCount: number;
    avgLatencyMs: number;
}
export interface UsageEventDto {
    id: string;
    providerId: string;
    providerCode: string;
    providerName: string;
    modelName: string;
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
    costAmount: number;
    latencyMs: number;
    statusCode: number;
    errorMessage: string | null;
    userId: string | null;
    featureName: string | null;
    requestId: string | null;
    timestamp: string;
}
export interface ProviderListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    logoUrl: string | null;
    websiteUrl: string | null;
    documentationUrl: string | null;
    apiKeyUrl: string | null;
    adminApiKeyUrl: string | null;
    supportsAdminApi: boolean;
    isActive: boolean;
    displayOrder: number;
    hasApiKey: boolean;
    hasAdminKey: boolean;
    keyCount: number;
    modelCount: number;
}
export interface ModelListDto {
    id: string;
    providerId: string | null;
    providerCode: string | null;
    providerName: string | null;
    code: string;
    shortCode: string;
    name: string;
    description: string | null;
    category: string;
    contextWindow: number;
    maxOutputTokens: number | null;
    inputCostPerMillionTokens: number;
    outputCostPerMillionTokens: number;
    supportsVision: boolean;
    supportsImageGeneration: boolean;
    supportsAudioInput: boolean;
    supportsAudioOutput: boolean;
    supportsFunctionCalling: boolean;
    supportsStreaming: boolean;
    supportsCodeExecution: boolean;
    isActive: boolean;
    isDeprecated: boolean;
    deprecationDate: string | null;
}
export interface ProviderInstanceListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    providerId: string;
    providerCode: string;
    providerName: string;
    providerLogoUrl: string | null;
    department: string | null;
    costCenter: string | null;
    defaultModel: string | null;
    monthlyBudgetLimit: number | null;
    currentMonthUsage: number;
    isOverBudget: boolean;
    isActive: boolean;
    displayOrder: number;
    hasApiKey: boolean;
    hasAdminKey: boolean;
    authorizedUserCount: number;
    authorizedRoleCount: number;
    authorizedApplicationCount: number;
    authorizedModuleCount: number;
    authorizedContextCount: number;
}
export interface ProviderInstanceDetailDto extends ProviderInstanceListDto {
    providerDocumentationUrl: string | null;
    systemContext: string | null;
    maxTokensPerRequest: number | null;
    createdAt: string;
    createdBy: string | null;
    updatedAt: string | null;
    updatedBy: string | null;
    authorizedUsers: InstanceUserDto[];
    authorizedRoles: InstanceRoleDto[];
    authorizedApplications: InstanceApplicationDto[];
    authorizedModules: InstanceModuleDto[];
    authorizedContexts: InstanceContextDto[];
}
export interface InstanceUserDto {
    id: string;
    userId: string;
    email: string;
    firstName: string;
    lastName: string;
    canManage: boolean;
}
export interface InstanceRoleDto {
    id: string;
    roleId: string;
    roleName: string;
    canManage: boolean;
}
export interface InstanceApplicationDto {
    id: string;
    applicationId: string;
    applicationCode: string;
    applicationLabel: string;
    applicationIcon: string | null;
    contextId: string;
    contextLabel: string;
}
export interface InstanceModuleDto {
    id: string;
    moduleId: string;
    moduleCode: string;
    moduleLabel: string;
    moduleIcon: string | null;
    applicationId: string;
    applicationLabel: string;
    contextId: string;
}
export interface InstanceContextDto {
    id: string;
    contextId: string;
    contextCode: string;
    contextLabel: string;
    contextIcon: string | null;
}
export interface GenerateCodeResponse {
    code: string;
    providerCode: string;
    sequence: number;
}
export interface CreateProviderInstanceRequest {
    providerId: string;
    code: string;
    name: string;
    description?: string;
    systemContext?: string;
    department?: string;
    costCenter?: string;
    defaultModel?: string;
    maxTokensPerRequest?: number;
    monthlyBudgetLimit?: number;
    displayOrder?: number;
    apiKey?: string;
    adminKey?: string;
}
export interface UpdateProviderInstanceRequest {
    name: string;
    description?: string;
    systemContext?: string;
    department?: string;
    costCenter?: string;
    defaultModel?: string;
    maxTokensPerRequest?: number;
    monthlyBudgetLimit?: number;
    displayOrder?: number;
}
export interface SetKeyRequest {
    value: string;
}
export interface AddInstanceUserRequest {
    userId: string;
    canManage?: boolean;
}
export interface AddInstanceRoleRequest {
    roleId: string;
    canManage?: boolean;
}
export interface AddInstanceApplicationRequest {
    applicationId: string;
}
export interface AddInstanceModuleRequest {
    moduleId: string;
}
export interface AddInstanceContextRequest {
    contextId: string;
}
export interface ProviderDetailDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    logoUrl: string | null;
    websiteUrl: string | null;
    documentationUrl: string | null;
    apiKeyUrl: string | null;
    apiBaseUrl: string | null;
    adminApiBaseUrl: string | null;
    supportsAdminApi: boolean;
    isActive: boolean;
    displayOrder: number;
    keys: ApiKeyListDto[];
    models: ModelListDto[];
}
export interface ApiKeyListDto {
    id: string;
    keyType: string;
    alias: string | null;
    description: string | null;
    isActive: boolean;
    expiresAt: string | null;
    lastUsedAt: string | null;
    rotatedAt: string | null;
    createdAt: string;
    maskedValue: string;
}
export interface ApiKeyDetailDto {
    id: string;
    providerId: string;
    providerCode: string;
    providerName: string;
    keyType: string;
    alias: string | null;
    description: string | null;
    isActive: boolean;
    expiresAt: string | null;
    lastUsedAt: string | null;
    lastUsedByUserId: string | null;
    rotatedAt: string | null;
    createdAt: string;
    createdBy: string | null;
    updatedAt: string | null;
    updatedBy: string | null;
    maskedValue: string;
    isExpired: boolean;
}
export interface CreateApiKeyRequest {
    keyType: string;
    value: string;
    alias?: string;
    description?: string;
    expiresAt?: string;
}
export interface UpdateApiKeyRequest {
    alias?: string;
    description?: string;
    expiresAt?: string;
}
export interface RotateKeyRequest {
    newValue: string;
}
export interface RevealKeyResponse {
    value: string;
}
export interface PromptListDto {
    id: string;
    name: string;
    category: string;
    status: string;
    version: number;
    blocksCount: number;
    createdAt: string;
    updatedAt: string | null;
}
export interface PromptDetailDto {
    id: string;
    name: string;
    description: string | null;
    category: string;
    status: string;
    version: number;
    parentPromptId: string | null;
    blocks: PromptBlockDto[];
    variables: string[];
    createdBy: string | null;
    createdAt: string;
    updatedBy: string | null;
    updatedAt: string | null;
}
export interface PromptBlockDto {
    id: string;
    promptId: string;
    definitionId: string | null;
    definitionName: string | null;
    blockType: string;
    title: string;
    content: string;
    displayOrder: number;
    isActive: boolean;
    variables: string[];
}
export interface PromptBlockDefinitionListDto {
    id: string;
    code: string;
    name: string;
    blockType: string;
    description: string | null;
    isSystem: boolean;
    isGlobal: boolean;
    isActive: boolean;
    usageCount: number;
}
export interface PromptBlockDefinitionDetailDto {
    id: string;
    code: string;
    name: string;
    blockType: string;
    defaultTitle: string | null;
    defaultContent: string | null;
    description: string | null;
    isSystem: boolean;
    isGlobal: boolean;
    isActive: boolean;
    usageCount: number;
    createdAt: string;
    createdBy: string | null;
    updatedAt: string | null;
    updatedBy: string | null;
    variables: string[];
}
export interface CreatePromptRequest {
    name: string;
    description?: string;
    category: string;
    blocks?: CreatePromptBlockRequest[];
}
export interface UpdatePromptRequest {
    name?: string;
    description?: string;
    category?: string;
}
export interface CreatePromptBlockRequest {
    definitionId?: string;
    blockType: string;
    title: string;
    content: string;
    displayOrder: number;
}
export interface UpdatePromptBlockRequest {
    title?: string;
    content?: string;
    displayOrder?: number;
    isActive?: boolean;
}
export interface CreateBlockDefinitionRequest {
    name: string;
    blockType: string;
    defaultTitle?: string;
    defaultContent?: string;
    description?: string;
}
export interface UpdateBlockDefinitionRequest {
    name?: string;
    defaultTitle?: string;
    defaultContent?: string;
    description?: string;
}
export interface ReorderBlocksRequest {
    blockIds: string[];
}
export interface PromptPreviewRequest {
    variables: Record<string, string>;
}
export type OutputSchemaCategory = 'Support' | 'Content' | 'Analysis' | 'Translation' | 'CodeGeneration' | 'DataExtraction' | 'Custom';
export interface SchemaListDto {
    id: string;
    code: string;
    version: number;
    name: string;
    description: string | null;
    category: OutputSchemaCategory;
    isActive: boolean;
    usageCount: number;
    createdAt: string;
}
export interface SchemaDetailDto {
    id: string;
    code: string;
    version: number;
    name: string;
    description: string | null;
    jsonSchema: string;
    uiSchema: string | null;
    dotNetType: string | null;
    category: OutputSchemaCategory;
    isActive: boolean;
    usageCount: number;
    createdBy: string | null;
    createdAt: string;
    updatedBy: string | null;
    updatedAt: string | null;
}
export interface CreateSchemaRequest {
    code: string;
    name: string;
    jsonSchema: string;
    category?: OutputSchemaCategory;
    description?: string;
    uiSchema?: string;
    dotNetType?: string;
}
export interface UpdateSchemaRequest {
    name: string;
    description?: string;
    jsonSchema: string;
    uiSchema?: string;
    category: OutputSchemaCategory;
}
export interface IncrementVersionRequest {
    jsonSchema: string;
    uiSchema?: string;
}
export interface PromptPreviewResponse {
    fullPrompt: string;
}
export interface ExecutePromptRequest {
    variables?: Record<string, string>;
    providerId?: string;
    modelId?: string;
}
export interface PromptExecutionResponse {
    promptId: string;
    promptName: string;
    response: string;
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
    latencyMs: number;
    providerId: string;
    modelId: string;
    modelName: string;
    success: boolean;
    error?: string;
}
export declare const aiApi: {
    dashboard: {
        getOverview: (days?: number) => Promise<DashboardOverviewDto>;
        getByProvider: (startDate?: string, endDate?: string) => Promise<ProviderUsageDto[]>;
        getByModel: (startDate?: string, endDate?: string, providerId?: string) => Promise<ModelUsageDto[]>;
        getDailyCosts: (days?: number, providerId?: string) => Promise<DailyCostDto[]>;
        getRecentEvents: (count?: number, providerId?: string) => Promise<UsageEventDto[]>;
    };
    settings: {
        getProviders: () => Promise<ProviderListDto[]>;
        getProvider: (providerId: string) => Promise<ProviderDetailDto>;
        getModels: (category?: string, providerId?: string) => Promise<ModelListDto[]>;
        getKey: (keyId: string) => Promise<ApiKeyDetailDto>;
        createKey: (providerId: string, data: CreateApiKeyRequest) => Promise<ApiKeyDetailDto>;
        updateKey: (keyId: string, data: UpdateApiKeyRequest) => Promise<ApiKeyDetailDto>;
        rotateKey: (keyId: string, data: RotateKeyRequest) => Promise<ApiKeyDetailDto>;
        revealKey: (keyId: string) => Promise<RevealKeyResponse>;
        activateKey: (keyId: string) => Promise<unknown>;
        deactivateKey: (keyId: string) => Promise<unknown>;
        deleteKey: (keyId: string) => Promise<unknown>;
    };
    instances: {
        getAll: () => Promise<ProviderInstanceListDto[]>;
        getMyInstances: () => Promise<ProviderInstanceListDto[]>;
        getById: (instanceId: string) => Promise<ProviderInstanceDetailDto>;
        generateCode: (providerId: string) => Promise<GenerateCodeResponse>;
        create: (data: CreateProviderInstanceRequest) => Promise<ProviderInstanceDetailDto>;
        update: (instanceId: string, data: UpdateProviderInstanceRequest) => Promise<ProviderInstanceDetailDto>;
        delete: (instanceId: string) => Promise<unknown>;
        setApiKey: (instanceId: string, data: SetKeyRequest) => Promise<unknown>;
        setAdminKey: (instanceId: string, data: SetKeyRequest) => Promise<unknown>;
        toggleActive: (instanceId: string) => Promise<unknown>;
        addUser: (instanceId: string, data: AddInstanceUserRequest) => Promise<unknown>;
        removeUser: (instanceId: string, userId: string) => Promise<unknown>;
        addRole: (instanceId: string, data: AddInstanceRoleRequest) => Promise<unknown>;
        removeRole: (instanceId: string, roleId: string) => Promise<unknown>;
        addApplication: (instanceId: string, data: AddInstanceApplicationRequest) => Promise<unknown>;
        removeApplication: (instanceId: string, applicationId: string) => Promise<unknown>;
        addModule: (instanceId: string, data: AddInstanceModuleRequest) => Promise<unknown>;
        removeModule: (instanceId: string, moduleId: string) => Promise<unknown>;
        addContext: (instanceId: string, data: AddInstanceContextRequest) => Promise<unknown>;
        removeContext: (instanceId: string, contextId: string) => Promise<unknown>;
    };
    prompts: {
        getAll: (params?: {
            search?: string;
            category?: string;
            status?: string;
        }) => Promise<PromptListDto[]>;
        getById: (id: string) => Promise<PromptDetailDto>;
        create: (data: CreatePromptRequest) => Promise<PromptDetailDto>;
        update: (id: string, data: UpdatePromptRequest) => Promise<PromptDetailDto>;
        delete: (id: string) => Promise<unknown>;
        activate: (id: string) => Promise<unknown>;
        deprecate: (id: string) => Promise<unknown>;
        clone: (id: string) => Promise<PromptDetailDto>;
        preview: (id: string, data: PromptPreviewRequest) => Promise<PromptPreviewResponse>;
        execute: (id: string, data: ExecutePromptRequest) => Promise<PromptExecutionResponse>;
        addBlock: (promptId: string, data: CreatePromptBlockRequest) => Promise<PromptBlockDto>;
        updateBlock: (promptId: string, blockId: string, data: UpdatePromptBlockRequest) => Promise<PromptBlockDto>;
        deleteBlock: (promptId: string, blockId: string) => Promise<unknown>;
        reorderBlocks: (promptId: string, data: ReorderBlocksRequest) => Promise<unknown>;
    };
    blockDefinitions: {
        getAll: (params?: {
            search?: string;
            blockType?: string;
        }) => Promise<PromptBlockDefinitionListDto[]>;
        getById: (id: string) => Promise<PromptBlockDefinitionDetailDto>;
        create: (data: CreateBlockDefinitionRequest) => Promise<PromptBlockDefinitionDetailDto>;
        update: (id: string, data: UpdateBlockDefinitionRequest) => Promise<PromptBlockDefinitionDetailDto>;
        delete: (id: string) => Promise<unknown>;
    };
    schemas: {
        getAll: (params?: {
            category?: OutputSchemaCategory;
            isActive?: boolean;
        }) => Promise<SchemaListDto[]>;
        getById: (schemaId: string) => Promise<SchemaDetailDto>;
        getByCode: (code: string, version?: number) => Promise<SchemaDetailDto>;
        getActiveByCode: (code: string) => Promise<SchemaDetailDto>;
        create: (data: CreateSchemaRequest) => Promise<SchemaDetailDto>;
        update: (schemaId: string, data: UpdateSchemaRequest) => Promise<SchemaDetailDto>;
        incrementVersion: (schemaId: string, data: IncrementVersionRequest) => Promise<SchemaDetailDto>;
        activate: (schemaId: string) => Promise<unknown>;
        deactivate: (schemaId: string) => Promise<unknown>;
        delete: (schemaId: string) => Promise<unknown>;
    };
};
//# sourceMappingURL=aiApi.d.ts.map