@clicktime/mcp-server
Version:
ClickTime MCP Tech Demo for AI agents to interact with ClickTime API
108 lines (107 loc) • 2.88 kB
TypeScript
export interface ExpenseType {
ID: string;
Name: string;
IsActive: boolean;
Description?: string;
}
export interface PaymentType {
ID: string;
Name: string;
IsActive: boolean;
Description?: string;
}
export interface ExpenseSheet {
ID: string;
Title: string;
Description?: string;
ExpenseSheetDate: string;
Status: 'open' | 'approved' | 'rejected' | 'waiting' | 'paid';
TotalAmount: number;
ReimbursableAmount: number;
ExpenseItemCount: number;
Paid: boolean;
EnableForeignCurrency: boolean;
TrackingID?: string;
Check?: string;
}
export interface ExpenseItem {
ID: string;
ExpenseDate: string;
Amount: number;
Description?: string;
Comment?: string;
Billable: boolean;
Reimbursable: boolean;
ExpenseSheetID: string;
ExpenseTypeID: string;
PaymentTypeID: string;
JobID?: string;
TaskID?: string;
Currency: string;
ReceiptURL?: string;
AmountForeign?: number;
AmountForeignCurrency?: string;
AmountForeignExchangeRate?: number;
HasForeignCurrency: boolean;
Quantity?: number;
Rate?: number;
}
export interface ExpenseSheetParams {
Status?: string[];
FromExpenseSheetDate?: string;
ToExpenseSheetDate?: string;
Paid?: boolean[];
limit?: number;
offset?: number;
}
export interface ExpenseItemParams {
ExpenseDate?: string[];
ExpenseSheetID?: string[];
ExpenseTypeID?: string[];
JobID?: string[];
ExpenseSheetStatus?: string[];
FromExpenseDate?: string;
ToExpenseDate?: string;
limit?: number;
offset?: number;
}
export interface CreateExpenseSheetData {
Title: string;
ExpenseSheetDate: string;
Description?: string;
EnableForeignCurrency?: boolean;
TrackingID?: string;
}
export interface CreateExpenseItemData {
ExpenseDate: string;
ExpenseSheetID: string;
ExpenseTypeID: string;
PaymentTypeID: string;
Amount?: number;
AmountForeign?: number;
AmountForeignCurrency?: string;
AmountForeignExchangeRate?: number;
Description?: string;
Comment?: string;
Billable?: boolean;
JobID?: string;
TaskID?: string;
Quantity?: number;
Receipt?: string;
ReceiptFileType?: string;
}
export interface ReceiptData {
base64Data: string;
mimeType: string;
fileName?: string;
fileSize?: number;
}
export interface ProcessedReceiptResult {
receipt: string;
receiptFileType: string;
suggestedAmount?: number;
suggestedDescription?: string;
suggestedDate?: string;
}
export declare const SUPPORTED_RECEIPT_MIME_TYPES: readonly ["image/jpeg", "image/x-jpeg", "image/pjpeg", "image/png", "image/x-png", "image/gif", "image/x-gif", "image/bmp", "image/x-bmp", "application/pdf"];
export type SupportedMimeType = (typeof SUPPORTED_RECEIPT_MIME_TYPES)[number];