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;
    tenantCount: number;
    isAllTenants: boolean;
    skillCount: 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;
    tenants: InstanceTenantDto[];
    skills: InstanceSkillDto[];
}
export interface InstanceTenantDto {
    id: string;
    tenantId: string;
    tenantName: string;
    tenantSlug: string | null;
}
export interface InstanceSkillDto {
    id: string;
    skillId: string;
    skillCode: string;
    skillName: string;
    skillDescription: string | null;
    skillVersion: string;
    skillStatus: string;
}
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 AddInstanceTenantRequest {
    tenantId: string;
}
export interface SetAllTenantsRequest {
    isAllTenants: boolean;
}
export interface AddInstanceSkillRequest {
    skillId: 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 AiSkillListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    version: string;
    status: string;
    isTemplate: boolean;
    tags: string | null;
    blockCount: number;
    createdAt: string;
    updatedAt: string | null;
}
export interface AiSkillDetailDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    version: string;
    status: string;
    isTemplate: boolean;
    parentSkillId: string | null;
    tags: string | null;
    blocks: AiSkillBlockDto[];
    variables: string[];
    createdBy: string | null;
    createdAt: string;
    updatedBy: string | null;
    updatedAt: string | null;
}
export interface AiSkillBlockDto {
    id: string;
    blockDefinitionId: string | null;
    blockDefinitionCode: string | null;
    blockType: string;
    label: string | null;
    content: string;
    displayOrder: number;
    isRequired: boolean;
    isEnabled: boolean;
    condition: string | null;
    variables: string[];
}
export interface AiSkillBlockDefinitionListDto {
    id: string;
    code: string;
    name: string;
    blockType: string;
    description: string | null;
    isSystem: boolean;
    isGlobal: boolean;
    isActive: boolean;
    usageCount: number;
}
export interface AiSkillBlockDefinitionDetailDto {
    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 CreateAiSkillRequest {
    code: string;
    name: string;
    description?: string;
    version?: string;
    isTemplate?: boolean;
    tags?: string;
    blocks?: CreateAiSkillBlockRequest[];
}
export interface UpdateAiSkillRequest {
    name?: string;
    description?: string;
    isTemplate?: boolean;
    tags?: string;
}
export interface CreateAiSkillBlockRequest {
    blockDefinitionId?: string;
    blockType: string;
    label: string;
    content: string;
    displayOrder: number;
    isRequired?: boolean;
    condition?: string;
}
export interface UpdateAiSkillBlockRequest {
    label?: string;
    content?: string;
    isRequired?: boolean;
    isEnabled?: boolean;
    condition?: string;
}
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 AiSkillPreviewRequest {
    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 AiSkillExecutionResponse {
    skillId: string;
    skillName: string;
    response: string;
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
    latencyMs: number;
    providerId: string;
    modelId: string;
    modelName: string;
    success: boolean;
    error?: string;
}
export interface InstanceUsageDto {
    instanceId: string;
    instanceCode: string;
    instanceName: string;
    department: string | null;
    costCenter: string | null;
    providerName: string;
    totalTokens: number;
    totalInputTokens: number;
    totalOutputTokens: number;
    totalCost: number;
    requestCount: number;
    successCount: number;
    errorCount: number;
    avgLatencyMs: number;
    lastUsedAt: string | null;
}
export interface InstanceEventDto {
    id: string;
    providerName: string;
    modelName: string;
    featureName: string | null;
    inputTokens: number;
    outputTokens: number;
    totalTokens: number;
    costAmount: number;
    latencyMs: number;
    statusCode: number;
    errorMessage: string | null;
    userId: string | null;
    requestId: string | null;
    timestamp: string;
}
export interface AiAgentListDto {
    id: string;
    agentCode: string;
    name: string;
    description: string | null;
    isActive: boolean;
    maxParallelism: number;
    timeoutSeconds: number;
    stepCount: number;
    createdAt: string;
    updatedAt: string | null;
}
export interface AiAgentStepDto {
    id: string;
    agentId: string;
    skillId: string;
    name: string;
    stepOrder: number;
    isActive: boolean;
    inputMappingJson: string | null;
    outputStateKey: string | null;
    continueOnFailure: boolean;
    createdAt: string;
    updatedAt: string | null;
    skill: {
        id: string;
        code: string;
        name: string;
        description: string | null;
    } | null;
}
export interface AiAgentDetailDto {
    id: string;
    agentCode: string;
    name: string;
    description: string | null;
    moduleId: string;
    isActive: boolean;
    maxParallelism: number;
    timeoutSeconds: number;
    createdAt: string;
    createdBy: string | null;
    updatedAt: string | null;
    updatedBy: string | null;
    steps: AiAgentStepDto[];
}
export interface AiAgentExecutionListDto {
    id: string;
    agentCode: string;
    status: number;
    startedAt: string;
    completedAt: string | null;
    executedSteps: number;
    totalSteps: number;
    totalInputTokens: number;
    totalOutputTokens: number;
    totalCost: number;
    totalExecutionTimeMs: number;
    errorMessage: string | null;
}
export interface AiAgentStepExecutionDto {
    id: string;
    executionId: string;
    stepId: string;
    skillCode: string;
    stepOrder: number;
    stepName: string;
    status: number;
    startedAt: string;
    completedAt: string | null;
    inputVariablesJson: string | null;
    outputJson: string | null;
    errorMessage: string | null;
    inputTokens: number;
    outputTokens: number;
    cost: number;
    executionTimeMs: number;
    providerCode: string | null;
    modelCode: string | null;
}
export interface AiAgentExecutionDetailDto extends AiAgentExecutionListDto {
    agentId: string;
    inputStateJson: string | null;
    finalStateJson: string | null;
    userId: string | null;
    stepExecutions: AiAgentStepExecutionDto[];
}
export interface CreateAgentRequest {
    agentCode: string;
    name: string;
    moduleId: string;
    description?: string;
    maxParallelism?: number;
    timeoutSeconds?: number;
}
export interface UpdateAgentRequest {
    name: string;
    description?: string;
    maxParallelism: number;
    timeoutSeconds: number;
    steps?: UpdateAgentStepRequest[];
}
export interface UpdateAgentStepRequest {
    id?: string;
    skillId: string;
    name: string;
    stepOrder: number;
    inputMappingJson?: string;
    outputStateKey?: string;
    continueOnFailure?: boolean;
}
export interface AgentExecutionResult {
    success: boolean;
    executionId: string;
    status: number;
    finalState: Record<string, string>;
    executedSteps: number;
    totalSteps: number;
    totalInputTokens: number;
    totalOutputTokens: number;
    totalCost: number;
    totalExecutionTimeMs: number;
    errorMessage: string | null;
}
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>;
        addTenant: (instanceId: string, data: AddInstanceTenantRequest) => Promise<unknown>;
        removeTenant: (instanceId: string, tenantId: string) => Promise<unknown>;
        setAllTenants: (instanceId: string, data: SetAllTenantsRequest) => Promise<unknown>;
        addSkill: (instanceId: string, data: AddInstanceSkillRequest) => Promise<unknown>;
        removeSkill: (instanceId: string, skillId: string) => Promise<unknown>;
    };
    skills: {
        getAll: (params?: {
            search?: string;
            category?: string;
            status?: string;
        }) => Promise<AiSkillListDto[]>;
        getById: (id: string) => Promise<AiSkillDetailDto>;
        getByCode: (code: string, version?: string) => Promise<AiSkillDetailDto>;
        create: (data: CreateAiSkillRequest) => Promise<AiSkillDetailDto>;
        update: (id: string, data: UpdateAiSkillRequest) => Promise<AiSkillDetailDto>;
        delete: (id: string) => Promise<unknown>;
        activate: (id: string) => Promise<unknown>;
        deprecate: (id: string) => Promise<unknown>;
        clone: (id: string) => Promise<AiSkillDetailDto>;
        preview: (id: string, data: AiSkillPreviewRequest) => Promise<PromptPreviewResponse>;
        execute: (id: string, data: ExecutePromptRequest) => Promise<AiSkillExecutionResponse>;
        addBlock: (skillId: string, data: CreateAiSkillBlockRequest) => Promise<AiSkillBlockDto>;
        updateBlock: (skillId: string, blockId: string, data: UpdateAiSkillBlockRequest) => Promise<AiSkillBlockDto>;
        deleteBlock: (skillId: string, blockId: string) => Promise<unknown>;
        reorderBlocks: (skillId: string, data: ReorderBlocksRequest) => Promise<unknown>;
    };
    blockDefinitions: {
        getAll: (params?: {
            search?: string;
            blockType?: string;
        }) => Promise<AiSkillBlockDefinitionListDto[]>;
        getById: (id: string) => Promise<AiSkillBlockDefinitionDetailDto>;
        create: (data: CreateBlockDefinitionRequest) => Promise<AiSkillBlockDefinitionDetailDto>;
        update: (id: string, data: UpdateBlockDefinitionRequest) => Promise<AiSkillBlockDefinitionDetailDto>;
        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>;
    };
    usage: {
        getByInstance: (startDate?: string, endDate?: string) => Promise<InstanceUsageDto[]>;
        getInstanceEvents: (instanceId: string, startDate?: string, endDate?: string, count?: number) => Promise<InstanceEventDto[]>;
    };
    agents: {
        getAll: () => Promise<AiAgentListDto[]>;
        getById: (id: string) => Promise<AiAgentDetailDto>;
        create: (data: CreateAgentRequest) => Promise<AiAgentDetailDto>;
        update: (id: string, data: UpdateAgentRequest) => Promise<unknown>;
        delete: (id: string) => Promise<unknown>;
        execute: (id: string, initialState: Record<string, string>) => Promise<AgentExecutionResult>;
        getExecutions: (id: string) => Promise<AiAgentExecutionListDto[]>;
        getExecutionDetail: (executionId: string) => Promise<AiAgentExecutionDetailDto>;
    };
};
//# sourceMappingURL=aiApi.d.ts.map