/** * Shared types for the Frihet MCP server. */ export interface PaginatedResponse { data: T[]; total: number; limit: number; offset: number; nextCursor?: string; } export interface ApiError { error: string; message?: string; detail?: string; } export interface PaginationParams { limit?: number; offset?: number; } export interface Address { street?: string; city?: string; state?: string; postalCode?: string; country?: string; } export interface InvoiceItem { description: string; quantity: number; unitPrice: number; } export interface Invoice { id: string; clientName: string; items: InvoiceItem[]; issueDate?: string; dueDate?: string; status?: string; notes?: string; taxRate?: number; total?: number; createdAt?: string; updatedAt?: string; } export type CreateInvoiceInput = Pick & Partial>; export type UpdateInvoiceInput = Partial; export interface Expense { id: string; description: string; amount: number; category?: string; date?: string; vendor?: string; taxDeductible?: boolean; createdAt?: string; updatedAt?: string; } export type CreateExpenseInput = Pick & Partial>; export type UpdateExpenseInput = Partial; export interface Client { id: string; name: string; email?: string; phone?: string; taxId?: string; address?: Address; createdAt?: string; updatedAt?: string; } export type CreateClientInput = Pick & Partial>; export type UpdateClientInput = Partial; export interface Product { id: string; name: string; unitPrice: number; description?: string; taxRate?: number; createdAt?: string; updatedAt?: string; } export type CreateProductInput = Pick & Partial>; export type UpdateProductInput = Partial; export interface QuoteItem { description: string; quantity: number; unitPrice: number; } export interface Quote { id: string; clientName: string; items: QuoteItem[]; validUntil?: string; notes?: string; status?: string; total?: number; createdAt?: string; updatedAt?: string; } export type CreateQuoteInput = Pick & Partial>; export type UpdateQuoteInput = Partial; export interface Webhook { id: string; userId?: string; name: string; url: string; events: string[]; status: "active" | "inactive" | "paused"; metadata?: Record; hasSecret: boolean; pausedReason?: string; lastTriggeredAt?: string; createdAt?: string; updatedAt?: string; } export interface CreateWebhookInput { name: string; url: string; events: string[]; status?: "active" | "inactive"; metadata?: Record; secret?: string; } export interface UpdateWebhookInput { name?: string; url?: string; events?: string[]; status?: "active" | "inactive" | "paused"; metadata?: Record; secret?: string; } /** Create may echo only the caller-supplied signing secret, once. */ export type CreateWebhookResult = Webhook & { secret?: string; }; //# sourceMappingURL=types.d.ts.map