import { EverHourClient, EverHourProject, EverHourTask, EverHourTimeRecord, EverHourTimer, EverHourUser, EverHourSection, CreateTimeRecordParams, UpdateTimeRecordParams, CreateProjectParams, UpdateProjectParams, CreateTaskParams, UpdateTaskParams, CreateClientParams, UpdateClientParams, CreateSectionParams, UpdateSectionParams, TimerStartParams, ListParams } from '../types/everhour.js';
export declare class EverHourApiClient {
    private client;
    private apiKey;
    private baseUrl;
    constructor(apiKey: string, baseUrl?: string);
    getProjects(params?: ListParams): Promise<EverHourProject[]>;
    getProject(id: string): Promise<EverHourProject>;
    createProject(params: CreateProjectParams): Promise<EverHourProject>;
    updateProject(id: string, params: UpdateProjectParams): Promise<EverHourProject>;
    deleteProject(id: string): Promise<void>;
    getTasks(params?: ListParams): Promise<EverHourTask[]>;
    getTask(id: string): Promise<EverHourTask>;
    createTask(projectId: string, params: CreateTaskParams): Promise<EverHourTask>;
    updateTask(id: string, params: UpdateTaskParams): Promise<EverHourTask>;
    deleteTask(id: string): Promise<void>;
    getTasksForProject(projectId: string, params?: ListParams): Promise<EverHourTask[]>;
    updateTaskEstimate(id: string, estimate: number): Promise<EverHourTask>;
    deleteTaskEstimate(id: string): Promise<void>;
    addTimeToTask(id: string, timeParams: CreateTimeRecordParams): Promise<EverHourTimeRecord>;
    updateTaskTime(id: string, timeParams: UpdateTimeRecordParams): Promise<EverHourTimeRecord>;
    deleteTaskTime(id: string): Promise<void>;
    getTaskTime(id: string): Promise<EverHourTimeRecord[]>;
    getProjectTime(id: string): Promise<EverHourTimeRecord[]>;
    getUserTime(id: number, params?: {
        from?: string;
        to?: string;
        limit?: number;
        page?: number;
    }): Promise<EverHourTimeRecord[]>;
    getTimeRecords(params?: ListParams): Promise<EverHourTimeRecord[]>;
    createTimeRecord(params: CreateTimeRecordParams): Promise<EverHourTimeRecord>;
    updateTimeRecord(id: number, params: UpdateTimeRecordParams): Promise<EverHourTimeRecord>;
    deleteTimeRecord(id: number): Promise<void>;
    getTimeRecord(id: number): Promise<EverHourTimeRecord>;
    getCurrentTimer(): Promise<EverHourTimer | null>;
    getRunningTimer(): Promise<EverHourTimer | null>;
    getAllTeamTimers(): Promise<EverHourTimer[]>;
    startTimer(params: TimerStartParams): Promise<EverHourTimer>;
    startTimerForTask(taskId: string, comment?: string): Promise<EverHourTimer>;
    stopTimer(timerId?: number): Promise<EverHourTimeRecord>;
    getTimers(params?: ListParams): Promise<EverHourTimer[]>;
    getClients(params?: ListParams): Promise<EverHourClient[]>;
    getClient(id: number): Promise<EverHourClient>;
    createClient(params: CreateClientParams): Promise<EverHourClient>;
    updateClient(id: number, params: UpdateClientParams): Promise<EverHourClient>;
    deleteClient(id: number): Promise<void>;
    getUsers(params?: {
        props?: string[];
    }): Promise<EverHourUser[]>;
    getCurrentUser(): Promise<EverHourUser>;
    getTimecards(params?: ListParams): Promise<any[]>;
    getTimecard(id: number): Promise<any>;
    getUserTimecards(userId: number, params?: ListParams): Promise<any[]>;
    updateTimecard(id: number, params: any): Promise<any>;
    deleteTimecard(id: number): Promise<void>;
    clockIn(userId: number, date?: string): Promise<any>;
    clockOut(userId: number): Promise<any>;
    getInvoices(params?: ListParams): Promise<any[]>;
    getInvoice(id: number): Promise<any>;
    createInvoice(params: any): Promise<any>;
    updateInvoice(id: number, params: any): Promise<any>;
    deleteInvoice(id: number): Promise<void>;
    refreshInvoiceLineItems(id: number): Promise<any>;
    updateInvoiceStatus(id: number, status: 'draft' | 'sent' | 'paid'): Promise<any>;
    exportInvoice(id: number, system: 'xero' | 'quickbooks' | 'freshbooks'): Promise<any>;
    getExpenses(params?: ListParams): Promise<any[]>;
    createExpense(params: any): Promise<any>;
    updateExpense(id: number, params: any): Promise<any>;
    deleteExpense(id: number): Promise<void>;
    getExpenseCategories(): Promise<any[]>;
    createExpenseCategory(name: string): Promise<any>;
    updateExpenseCategory(id: number, name: string): Promise<any>;
    deleteExpenseCategory(id: number): Promise<void>;
    createExpenseAttachment(file: any): Promise<any>;
    addAttachmentToExpense(expenseId: number, attachmentId: number): Promise<any>;
    getAllSections(params?: ListParams): Promise<EverHourSection[]>;
    getSections(projectId: string, params?: ListParams): Promise<EverHourSection[]>;
    getSection(id: string): Promise<EverHourSection>;
    createSection(params: CreateSectionParams): Promise<EverHourSection>;
    updateSection(id: string, params: UpdateSectionParams): Promise<EverHourSection>;
    deleteSection(id: string): Promise<void>;
    testConnection(): Promise<boolean>;
    formatTime(seconds: number): string;
    parseTimeToSeconds(timeString: string): number;
}
//# sourceMappingURL=everhour-client.d.ts.map