import { ApiClient } from '../api-client.js';
import { type Bill } from '../../../types/types.js';
import { BillQueryBuilder } from './bill-query-builder.js';
/**
 * Bill API Client
 */
export declare class BillAPI {
    protected readonly apiClient: ApiClient;
    readonly getAllBills: (options?: import("../../../app.js").BillOptions | undefined) => Promise<import("../../../app.js").SearchResponse<Bill>>;
    readonly getBillById: (id: string) => Promise<Bill>;
    readonly getBillsForDateRange: (startDate: Date, endDate: Date, options?: import("../../../app.js").BillOptions | undefined) => Promise<import("../../../app.js").SearchResponse<Bill>>;
    readonly getUpdatedBills: (lastUpdatedDate: Date, options?: import("../../../app.js").BillOptions | undefined) => Promise<import("../../../app.js").SearchResponse<Bill>>;
    readonly rawBillQuery: (queryBuilder: BillQueryBuilder) => Promise<import("../../../app.js").SearchResponse<Bill>>;
    /**
     * Constructor
     * @param apiClient - The API Client
     */
    constructor(apiClient: ApiClient);
    /**
     * Get the Company Endpoint
     * @returns The Company Endpoint
     */
    protected getCompanyEndpoint(): Promise<string>;
    /**
     * Format the Response
     * @param response - The Response
     * @returns The Bills
     */
    protected formatResponse(response: any): Array<Bill>;
    /**
     * Get the Query Builder
     * @returns The Query Builder
     */
    getQueryBuilder(): Promise<BillQueryBuilder>;
    /**
     * Checks if there is a next page
     * @param queryBuilder - The Query Builder
     * @returns True if there is a next page
     */
    protected hasNextPage(queryBuilder: BillQueryBuilder): Promise<boolean>;
}
