import { Logger } from '../services/logger.js';
export interface GustoClientConfig {
    gUSTOAPITOKEN?: string;
    timeout?: number;
    rateLimit?: number;
    authToken?: string;
    logger?: Logger;
}
export declare class GustoClient {
    private httpClient;
    private config;
    private sessionId;
    private logger;
    constructor(config: GustoClientConfig);
    private setupRateLimit;
    private resolveBaseUrl;
    private getAuthHeaders;
    /**
     * Initialize the client (for OAuth clients that need initialization)
     */
    initialize(): Promise<void>;
    /**
     * Get the session ID for this client instance
     */
    getSessionId(): string;
    /**
     * Make an authenticated request with proper headers
     */
    private makeAuthenticatedRequest;
    private buildPath;
    createCompany(params: any): Promise<any>;
    getCompany(params: any): Promise<any>;
    updateCompany(params: any): Promise<any>;
    createLocation(params: any): Promise<any>;
    listLocations(params: any): Promise<any>;
    createEmployee(params: any): Promise<any>;
    getEmployee(params: any): Promise<any>;
    updateEmployee(params: any): Promise<any>;
    listEmployees(params: any): Promise<any>;
    createJob(params: any): Promise<any>;
    getJob(params: any): Promise<any>;
    updateJob(params: any): Promise<any>;
    listPayrolls(params: any): Promise<any>;
    getPayroll(params: any): Promise<any>;
    createPayroll(params: any): Promise<any>;
    submitPayroll(params: any): Promise<any>;
    listPaySchedules(params: any): Promise<any>;
    createPaySchedule(params: any): Promise<any>;
    listContractors(params: any): Promise<any>;
    createContractor(params: any): Promise<any>;
    getContractor(params: any): Promise<any>;
    createContractorPayment(params: any): Promise<any>;
    getContractorPayment(params: any): Promise<any>;
    listCompanyBenefits(params: any): Promise<any>;
    getCompanyBenefit(params: any): Promise<any>;
    getCompanyBenefitSummary(params: any): Promise<any>;
    createTimeOffPolicy(params: any): Promise<any>;
    listTimeOffPolicies(params: any): Promise<any>;
    getCurrentUser(params: any): Promise<any>;
}
//# sourceMappingURL=gusto-client.d.ts.map