import { type EntityContactsRefreshParams } from '../schemas';
import type { P21ApisClient } from '../client';
type ExecuteRequest = P21ApisClient['executeRequest'];
/**
 * Creates the entityContacts resource methods
 * OpenAPI Path: /entity-contacts → entityContacts.*
 * @description Entity contacts data refresh and synchronization following OpenAPI path mirroring pattern
 */
export declare function createEntityContactsResource(executeRequest: ExecuteRequest): {
    /**
     * Entity contacts refresh operations - OpenAPI Path: /entity-contacts/refresh
     */
    refresh: {
        /**
         * Trigger entity contacts data refresh for synchronization
         * @description Initiates a data refresh operation for entity contacts to synchronize with the P21 ERP system. Returns status of the refresh operation for monitoring and verification.
         *
         * @fullPath api.p21Apis.entityContacts.refresh.get
         * @service p21-apis
         * @domain entity-data-management
         * @dataMethod entityContactsData.refresh.get
         * @discoverable true
         * @searchTerms ["entity contacts", "data refresh", "synchronization", "contact sync", "entity sync"]
         * @relatedEndpoints ["api.p21Apis.entityCustomers.refresh.get", "api.p21Apis.healthCheck.get", "api.p21Core.address.list"]
         * @commonPatterns ["Refresh contact data", "Synchronize entity contacts", "Trigger data sync", "Update contact information"]
         * @workflow ["data-synchronization", "entity-refresh", "contact-management", "erp-sync"]
         * @prerequisites ["Valid site ID", "Data refresh permissions", "Entity access rights"]
         * @nextSteps ["api.p21Core.address.list for contact addresses", "api.customers.customer.list for customer contacts"]
         * @businessRules ["Site-scoped refresh operations", "Asynchronous data synchronization", "Background processing for large datasets"]
         * @functionalArea "entity-data-management"
         * @performance "Asynchronous operation, returns immediately with status"
         */
        get: (params?: EntityContactsRefreshParams) => Promise<{
            params: Record<string, unknown> | unknown[];
            options: Record<string, unknown> | unknown[];
            status: number;
            message: string;
            count: number;
            total: number;
            totalResults: number;
            data?: unknown;
        }>;
    };
};
/**
 * Creates the entityContactsData resource methods (data-only versions)
 */
export declare function createEntityContactsDataResource(entityContacts: ReturnType<typeof createEntityContactsResource>): {
    refresh: {
        /**
         * Get only entity contacts refresh data without response metadata
         * @param params Site ID and refresh parameters
         * @returns Promise<EntityRefreshData> Direct refresh result object
         */
        get: (params?: EntityContactsRefreshParams) => Promise<unknown>;
    };
};
export type EntityContactsResource = ReturnType<typeof createEntityContactsResource>;
export type EntityContactsDataResource = ReturnType<typeof createEntityContactsDataResource>;
export {};
//# sourceMappingURL=entity-contacts.d.ts.map