import { IversionInfo } from '../aecpilot/model';
export declare enum ChatMode {
    Dialog = 0,
    TextGenerate = 1,
    FileSummery = 2
}
export interface IKnowledge {
    id: string;
    name: string;
    description: string;
    fileSize: number;
    createdAt: string;
    tenantCode: string;
    isReady: boolean;
    fileName: string;
    knowledgeType: KnowledgeType;
    fileCount: number;
    knowledgeApplicationCount: number;
    usedType: number;
    dataFormat: IDataFormat[];
    nickname: string;
}
export interface IKnowledgeParam {
    name: string;
    description?: string;
    knowledgeType?: KnowledgeType;
}
export interface IFileParam {
    name: string;
    url: string;
    size: number;
    ext?: string;
}
export interface IFile {
    id: string;
    knowledgeId: string;
    size: number;
    name: string;
    originalName: string;
    status: number;
    url: string;
    ext: string;
    creator: string;
    chromaFileIds: string;
    description: string;
    wordCount: number;
    createdAt: string;
    wordNumber: number;
    updatedAt: string;
    source: number;
    originalFile: string;
    downloadOriginalFileUrl: string;
    enabled: number;
    datasetData: {
        datasetId: string;
        versionId: string;
        sampleId: string;
    };
    knowledgeSourceName: string;
    sourceType: number;
    sourceFileName: string;
    sourceFileUrl: string;
    webLink: string;
    nickname: string;
    createName: string;
    createUsername: string;
    updateName: string;
    updateUsername: string;
    versionInfo: IversionInfo;
}
export interface IUploadProgress {
    knowledgeId?: string;
    name: string;
    size: number;
    progress: number;
}
export interface IUploadParam {
    files: string[];
    isv: string;
    knowledgeId: string;
}
export interface MinioConfig {
    accessKey: string;
    secretKey: string;
    bucket: string;
    expiredAt: number;
    prefix: string;
    endpoints: string[];
    region: string;
    useSSL: boolean;
    fileKeys: string[];
}
export interface IUploadTicket {
    minio: {
        accessKey: string;
        secretKey: string;
        bucket: string;
        expiredAt: number;
        prefix: string;
        endpoints: string[];
        region: string;
        useSSL: boolean;
        fileKeys: string[];
    };
}
export interface ISession {
    id: string;
    name: string;
    knowledges?: IKnowledge[];
    createdAt: string;
    finialMessage: string;
    applicationId: string;
    labels: {
        key: string;
        value: string;
    }[];
    netOpen: boolean;
    enableNetOpen: boolean;
    lastFileName: string;
    fileStatus: number;
    fileCount: number;
    top: boolean;
    topTime: number;
    deletedAt: string;
    updatedAt: string;
    selectedKnowledges?: IKnowledge[];
    lastRelatedQuestion?: string[];
}
export interface SessionQueryParams {
    order: string;
}
export interface ISessionParam {
    name?: string;
    knowledges?: IKnowledge[];
    knowledgeList?: string[];
    finialMessage?: string;
    applicationId?: string;
    lastRelatedQuestion?: string[];
    top?: boolean;
}
export interface ICommentParam {
    messageId?: string;
    isAgree: number;
    againstReason?: string[];
}
export declare enum ChatMessageRole {
    Robot = 1,
    User = 2,
    System = 3
}
export interface PluginFunctionBasic {
    pluginName: string;
    pluginCode: string;
    funcCode: string;
    funcName: string;
    parameters?: {
        header: any;
        query: any;
    };
    requestBody?: any;
    runnerIsClient?: boolean;
    result?: {
        code: number;
        message: string;
        data: any;
    };
}
export interface Thought {
    step: number;
    thought?: string;
    observation?: string;
}
export interface ActionPayload<T> {
    type: 'BEFORE_CALL' | 'FUNCTION_CALL' | 'RESULT' | 'AFTER_CALL' | 'ABORT';
    data?: T;
}
export declare enum FileProccessStatus {
    Processing = 1,
    Done = 2,
    Failed = 3
}
export declare enum SourceType {
    File = 0,
    WebLink = 1
}
export interface ChatMessageFile {
    id: number;
    baseId: number;
    size: number;
    name: string;
    status: FileProccessStatus;
    url: string;
    ext: string;
    description: string;
    wordCount: number;
    createdAt: string;
    wordNumber: number;
    updatedAt: string;
    source: string;
    originalFile: string;
    downloadOriginalFileUrl: string;
    datasetData: {
        datasetId: string;
        versionId: string;
        sampleId: string;
    };
    knowledgeSourceName: string;
    sourceType: SourceType;
    sourceFileName: string;
    sourceFileUrl: string;
    webLink: string;
    nickname: string;
    createUsername: string;
    createName: string;
    updateUsername: string;
    updateName: string;
    enabled: 0 | 1;
    versionInfo: string;
}
export interface IChatMessage {
    ts?: string;
    messageId: string;
    content: string;
    role: ChatMessageRole;
    userId?: string;
    sessionId: string;
    reference: IReference[];
    searchReference: ISearchRefernce[];
    comment?: ICommentParam;
    knowledges?: IKnowledge[];
    isLoading?: boolean;
    messageTime: string;
    fileId?: string;
    file?: KnowledgeFileMetadata;
    chatMode?: ChatMode;
    llmModel?: string;
    isContext?: boolean;
    index?: number;
    actions?: ActionPayload<PluginFunctionBasic & Thought>[][];
    agentHistoryList?: {
        agentList: string;
        createdAt: string;
        creator: string;
        deletedAt: string;
        id: string;
        updatedAt: string;
    };
    finish?: boolean;
    code?: number;
    isSensitive?: boolean;
    message?: string;
    stream?: boolean;
    fileIds?: string[];
    relatedQuesion?: string[];
    isReplying?: boolean;
    files?: ChatMessageFile[];
    thinkingSecs?: number;
    thinkingStatus?: "end" | "start";
    reasoningContent?: string;
}
export interface IReference {
    text: string;
    docId: string;
    fileId: string;
    fileName: string;
    knowledgeId: string;
    knowledgeName: string;
    score: number;
    nickname: string;
    knowledgeSourceName: string;
}
export interface ISearchRefernce {
    link: string;
    title: string;
    snippet: string;
}
export interface IHistory {
    role: number;
    content: string;
    messageId?: string;
    knowledges: {
        id: string;
        name: string;
    }[];
    messageTime?: string;
    reference?: IReference[];
    fileId?: string;
}
export interface IArrange {
    llmModel: string;
    prePrompt: string;
    knowledges: any;
    temperature: number;
    score: number;
    topK: number;
    textFilter: number;
    roleCognition: string;
    repetitionPenalty: number;
    rerankMode: number;
    embeddingService: string;
    enableNetOpen: boolean;
}
export interface IApplication {
    id: string;
    name: string;
    description: string;
    logo: string;
    createdAt: string;
    updatedAt: string;
    embeddings: string[];
    arrange: IArrange[];
    type: number;
    createName: string;
    createUsername: string;
    updateName: string;
    updateUsername: string;
}
export interface IApplicationParam {
    name?: string;
    description?: string;
    logo?: string;
    arrange?: IArrange[];
    type?: number;
}
export interface IFileNameParam {
    name?: string;
    description?: string;
    enabled?: number;
    nickname?: string;
    webLink?: string;
    knowledgeSourceName?: string;
    sourceFileName?: string;
    sourceType?: number;
    versionInfo?: IversionInfo;
}
export interface IResource {
    id: string;
    name: string;
    statusSubsection?: boolean;
    url?: string;
    size?: number;
}
export interface IResourceParam {
    type?: string;
    datasetId?: string;
    id?: string;
    sampleId?: string;
    versionId?: string;
}
export interface IComposedFile {
    fileList: IFileList[];
    importType: number;
}
export interface IFileList {
    url: string;
    statusSubsection: boolean;
    sampleId: string;
    name: string;
    description: string;
    versionId: string;
    datasetId: string;
    size: number;
    fieldMapping: IFieldMappingKeys[];
    datasetType: number;
}
export interface IFieldMappingKeys {
    fileKey: string;
    knowledgeKey: string;
}
export interface IAppToken {
    startDate?: string;
    endDate?: string;
    llmModel: string;
}
export interface IAppList {
    appName: string;
    list: IEmbeddingData[];
}
export interface IEmbeddingData {
    appName: string;
    llmModel: string;
    totleCount: number;
    inputCount: number;
    outputCount: number;
    embeddingCount: number;
    date: string;
}
export interface KnowledgeFileMetadataParams {
    name: string;
    url: string;
    size: number;
}
export declare enum KnowledgeFileStatus {
    Processing = 1,
    Success = 2,
    Failed = 3
}
export interface KnowledgeFileMetadata {
    id: string;
    baseId: number;
    size: number;
    name: string;
    status: KnowledgeFileStatus;
    url: string;
    ext: string;
    description: string;
}
export interface IAecModel {
    key: string;
    name: string;
    sort: number;
    isDefault: number;
}
export declare enum ArchiGptUIKeys {
    InputFile = "ui.input.file",// 对话中添加文件
    LLMModel = "ui.llm.model"
}
export declare enum PromptStatus {
    Idle = 0,
    Quoted = 1
}
export interface IPrompt {
    id?: string;
    key?: string;
    name?: string;
    status?: PromptStatus;
}
export interface ISessionPrompt {
    id?: string;
    key: string;
    name?: string;
    value: string;
}
export interface IAppGetParam {
    available?: boolean;
    type?: number;
}
export interface IPresetApplication {
    id: string;
    applicationId: string;
    applicationName: string;
    type: number;
}
export declare enum KnowledgeType {
    Basic = 0,
    Pro = 1
}
export interface IKnowledgeConfig {
    id?: string;
    dataFormat: IDataFormat[];
    embeddingTemplate: string;
    knowledgeBaseReference: string;
    embeddingShowTemplate: string;
}
export interface IDataFormat {
    key: string;
    name: string;
}
export interface IFileData {
    key: string;
    name: string;
    values: {
        keyhwdSyyIdCode: string;
        content: string;
        did: string;
        enabled: number;
    }[];
}
export interface IFileDataParam {
    key: string;
    value: string;
}
export interface IFileDataRow extends Record<string, any> {
    keyhwdSyyIdCode: string;
}
export interface IPresetKnowledge {
    id: string;
    knowledgeId: string;
    name: string;
    isOpen: boolean;
    description: string;
}
export interface IResourceTokenParam {
    type: string;
    applicationId: string;
}
export interface IResourceToken {
    token: string;
    expiredAt: number;
}
export interface ILogExportParam {
    agree: number;
    beginTime: string;
    endTime: string;
    labels?: string;
    userAccount?: string;
}
export interface IMetaData {
    code: string;
    value: string;
}
export interface IGeneques {
    content: string;
    llmModel: string;
    messageId: string;
    messageTime: string;
}
export declare enum ApplicationTypes {
    Dialog = 0,
    Text = 1,
    Agent = 2,
    All = 3
}
export interface ChatHistoryParams {
    endTime?: string;
    startTime?: string;
    pageSize?: number;
    contextOnly?: boolean;
}
