import type { Project, Chat, ChatConnectedScope, ChatLocalKnowledgeScope, ChatRole, WorkflowStatus, ChatMessage, CreateChatOptions, UpdateProjectPatch, UpdateChatPatch, NewChatMessage, UpdateChatMessagePatch } from "@oscharko-dev/keiko-contracts/bff-wire";
export type { Project, Chat, ChatConnectedScope, ChatLocalKnowledgeScope, ChatRole, WorkflowStatus, ChatMessage, CreateChatOptions, UpdateProjectPatch, UpdateChatPatch, NewChatMessage, UpdateChatMessagePatch, };
export interface UiStore {
    readonly listProjects: () => readonly Project[];
    readonly createProject: (path: string, name?: string) => Project;
    readonly updateProject: (path: string, patch: UpdateProjectPatch) => Project;
    readonly deleteProject: (path: string) => void;
    readonly listChats: (projectPath: string, limit?: number) => readonly Chat[];
    readonly findChatById: (id: string) => Chat | undefined;
    readonly createChat: (projectPath: string, title: string, selectedModel: string, opts?: CreateChatOptions) => Chat;
    readonly updateChat: (id: string, patch: UpdateChatPatch) => Chat;
    readonly deleteChat: (id: string) => void;
    readonly listMessages: (chatId: string, limit?: number) => readonly ChatMessage[];
    readonly findMessageById: (id: string) => ChatMessage | undefined;
    readonly createMessage: (msg: NewChatMessage) => ChatMessage;
    readonly createMessages: (messages: readonly NewChatMessage[]) => readonly ChatMessage[];
    readonly updateMessage: (id: string, patch: UpdateChatMessagePatch) => ChatMessage;
    readonly close: () => void;
}
export interface UiStoreFactoryOptions {
    readonly now?: () => number;
    readonly newId?: () => string;
    readonly redactString?: (input: string) => string;
}
//# sourceMappingURL=types.d.ts.map