import { Message } from "../clients/types";
import { CompletionOptions, CompletionResponse, EmbeddingOptions, EmbeddingResponse, AudioTranscriptionOptions, AudioTranscriptionResponse, AudioGenerationOptions, AudioGenerationResponse, ImageGenerationOptions, ImageGenerationResponse, VideoGenerationOptions, VideoGenerationResponse, VideoStatusOptions, VideoStatusResponse, FileUploadOptions, FileUploadResponse, FileDownloadOptions } from "../clients";
import { Config } from "../types";
export interface CreateSessionPlaceholderRequest {
    title?: string;
    workerId?: string;
    metadata?: Record<string, any>;
}
export interface CreateSessionPlaceholderResponse {
    sessionId: string;
    orgId: string;
}
export interface CreateMessagePlaceholderRequest {
    content: string;
    agentName?: string;
    modelName?: string;
    metadata?: Record<string, any>;
}
export interface CreateMessagePlaceholderResponse {
    messageId: string;
    taskId?: string;
}
export interface CreateMessageTaskRequest {
    messageId: string;
    prompt: string;
}
export interface CreateMessageTaskResponse {
    id: string;
}
export interface UpdateOrgTaskRequest {
    threads: Message[][];
    totalCostUsd: number;
    inProgress: boolean;
    result?: string;
}
export interface UpdateOrgTaskResponse {
    threadCount: Message[][];
    totalCostUsd: number;
    inProgress: boolean;
}
export interface TaskDetailsResponse {
    taskId: string;
    inProgress: boolean;
    status: "running" | "paused" | "killed" | "completed";
    totalUsdCost: number;
    threads: any[][];
    createdAt: string;
    updatedAt: string;
    messageId?: string;
    hasPendingMessages: boolean;
    pendingMessagesCount: number;
    result?: string;
}
export interface PendingMessage {
    id: string;
    message: string;
    role: string;
    createdAt: Date;
    processedAt: Date | null;
}
export interface SendMessageRequest {
    message: string;
    role?: "user" | "system";
}
export interface SendMessageResponse {
    id: string;
    message: string;
}
export interface StatusResponse {
    status: string;
}
export interface MarkProcessedResponse {
    processedCount: number;
}
export interface GitCredentialResponse {
    protocol: string;
    host: string;
    username: string;
    password: string;
    expiresAt: string | null;
}
export declare function loadKnowhowJwt(): string;
export declare const KNOWHOW_API_URL: string;
export declare class KnowhowSimpleClient {
    private baseUrl;
    private jwt;
    headers: Record<string, string>;
    jwtValidated: boolean;
    constructor(baseUrl?: string, jwt?: string);
    refreshJwt(): void;
    setJwt(jwt: string): void;
    checkJwt(): Promise<void>;
    me(): Promise<import("../utils/http").HttpResponse<any>>;
    getPresignedUploadUrl(source: Config["embedSources"][0]): Promise<any>;
    getPresignedDownloadUrl(source: Config["embedSources"][0]): Promise<any>;
    getOrgEmbedding(id: string): Promise<{
        [key: string]: unknown;
        id: string;
        modelName: string;
        name: string;
    }>;
    updateEmbeddingMetadata(id: string, data: {
        inputGlob?: string;
        outputPath?: string;
        chunkSize?: number;
        remoteType?: string;
    }): Promise<import("../utils/http").HttpResponse<any>>;
    createChatCompletion(options: CompletionOptions): Promise<import("../utils/http").HttpResponse<CompletionResponse>>;
    createEmbedding(options: EmbeddingOptions): Promise<import("../utils/http").HttpResponse<EmbeddingResponse>>;
    getModels(type?: string): Promise<import("../utils/http").HttpResponse<any>>;
    createAudioTranscription(options: AudioTranscriptionOptions): Promise<import("../utils/http").HttpResponse<AudioTranscriptionResponse>>;
    createAudioGeneration(options: AudioGenerationOptions): Promise<import("../utils/http").HttpResponse<AudioGenerationResponse>>;
    createImageGeneration(options: ImageGenerationOptions): Promise<import("../utils/http").HttpResponse<ImageGenerationResponse>>;
    createVideoGeneration(options: VideoGenerationOptions): Promise<import("../utils/http").HttpResponse<VideoGenerationResponse>>;
    getVideoStatus(options: VideoStatusOptions): Promise<import("../utils/http").HttpResponse<VideoStatusResponse>>;
    downloadVideo(options: FileDownloadOptions): Promise<import("../utils/http").HttpResponse<ArrayBuffer>>;
    uploadFile(options: FileUploadOptions): Promise<import("../utils/http").HttpResponse<FileUploadResponse>>;
    downloadFile(options: FileDownloadOptions): Promise<import("../utils/http").HttpResponse<ArrayBuffer>>;
    createChatTask(request: CreateMessageTaskRequest): Promise<import("../utils/http").HttpResponse<CreateMessageTaskResponse>>;
    updateChatTask(taskId: string, updates: UpdateOrgTaskRequest): Promise<import("../utils/http").HttpResponse<UpdateOrgTaskResponse>>;
    getTaskDetails(taskId: string): Promise<import("../utils/http").HttpResponse<TaskDetailsResponse>>;
    getPendingMessages(taskId: string): Promise<import("../utils/http").HttpResponse<PendingMessage[]>>;
    markMessagesAsProcessed(taskId: string, messageIds: string[]): Promise<import("../utils/http").HttpResponse<MarkProcessedResponse>>;
    sendMessageToAgent(taskId: string, message: string, role?: "user" | "system"): Promise<import("../utils/http").HttpResponse<SendMessageResponse>>;
    pauseAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
    resumeAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
    getTaskThreads(taskId: string): Promise<any[][]>;
    killAgent(taskId: string): Promise<import("../utils/http").HttpResponse<StatusResponse>>;
    listOrgFiles(): Promise<import("../utils/http").HttpResponse<{
        id: string;
        fileName: string;
        folderPath: string;
        name: string;
    }[]>>;
    createOrgFile(fileName: string, folderPath: string): Promise<import("../utils/http").HttpResponse<{
        id: string;
        fileName: string;
        folderPath: string;
        name: string;
    }>>;
    getOrgFileText(fileId: string): Promise<import("../utils/http").HttpResponse<string>>;
    updateOrgFileText(fileId: string, text: string): Promise<import("../utils/http").HttpResponse<any>>;
    findOrgFileByPath(remotePath: string): Promise<{
        id: string;
        fileName: string;
        folderPath: string;
    } | null>;
    findOrCreateOrgFileByPath(remotePath: string): Promise<{
        id: string;
        fileName: string;
        folderPath: string;
    }>;
    getOrgFilePresignedDownloadUrl(filePath: string): Promise<{
        downloadUrl: string;
        checksumSHA256: string | null;
    }>;
    markOrgFileUploadComplete(filePath: string): Promise<void>;
    getOrgFilePresignedUploadUrl(filePath: string, localFilePath?: string): Promise<string>;
    getGitCredential(repo: string): Promise<GitCredentialResponse>;
    listCloudWorkers(): Promise<import("../utils/http").HttpResponse<{
        id: string;
        name: string;
        status: string;
        workerConfigJson?: Record<string, unknown>;
    }[]>>;
    createCloudWorker(data: {
        name: string;
        workerConfigJson?: Record<string, unknown>;
    }): Promise<import("../utils/http").HttpResponse<{
        id: string;
        name: string;
        status: string;
        workerConfigJson?: Record<string, unknown>;
    }>>;
    getCloudWorker(id: string): Promise<import("../utils/http").HttpResponse<{
        id: string;
        name: string;
        status: string;
        workerConfigJson?: Record<string, unknown>;
    }>>;
    updateCloudWorker(id: string, data: {
        workerConfigJson?: Record<string, unknown>;
    }): Promise<import("../utils/http").HttpResponse<{
        id: string;
        name: string;
        status: string;
        workerConfigJson?: Record<string, unknown>;
    }>>;
    createSessionPlaceholder(request?: CreateSessionPlaceholderRequest): Promise<CreateSessionPlaceholderResponse>;
    createMessagePlaceholder(sessionId: string, request: CreateMessagePlaceholderRequest): Promise<CreateMessagePlaceholderResponse>;
}
