import { type JobPriceHdrListParams, type JobPriceHdr, type JobPriceLineListParams, type JobPriceLine } from '../schemas';
import type { PricingClient } from '../client';
import type { BaseResponse } from '../../../core/base-client';
type ExecuteRequest = PricingClient['executeRequest'];
/**
 * Creates the jobPriceHdr resource methods
 * OpenAPI Path: /job-price-hdr → jobPriceHdr.*
 * @description Methods for managing job-based pricing contracts and agreements
 */
export declare function createJobPriceHdrResource(executeRequest: ExecuteRequest): {
    /**
     * List job price headers with filtering and pagination
     * @description Retrieves job price headers with optional search, filtering, and pagination
     * @fullPath api.pricing.jobPriceHdr.list
     * @service pricing
     * @domain job-pricing
     * @dataMethod jobPriceHdrData.list
     * @discoverable true
     * @searchTerms ["job price header", "list job headers", "job pricing", "pricing contracts"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr.get", "api.pricing.jobPriceHdr.lines.list"]
     * @commonPatterns ["list job headers", "search job headers", "job pricing list"]
     * @param params Optional filtering and pagination parameters
     * @returns Paginated list of job price headers with total count
     * @throws ValidationError When parameters are invalid or response is malformed
     * @example
     * ```typescript
     * // Get all job price headers
     * const headers = await client.jobPriceHdr.list();
     *
     * // Search and filter
     * const filtered = await client.jobPriceHdr.list({
     *   q: 'contract',
     *   limit: 25,
     *   orderBy: 'job_no|ASC'
     * });
     *
     * console.log(`Found ${filtered.total} job price headers`);
     * filtered.data.forEach(header => {
     *   console.log(`${header.job_no}: ${header.job_description}`);
     * });
     * ```
     */
    list: (params?: JobPriceHdrListParams) => Promise<BaseResponse<JobPriceHdr[]>>;
    /**
     * Get specific job price header details
     * @description Retrieves detailed information for a specific job price header
     * @fullPath api.pricing.jobPriceHdr.get
     * @service pricing
     * @domain job-pricing
     * @dataMethod jobPriceHdrData.get
     * @discoverable true
     * @searchTerms ["job price header", "get job header", "job pricing details"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr.list", "api.pricing.jobPriceHdr.lines.get"]
     * @commonPatterns ["get job header", "job header details", "job pricing details"]
     * @param jobPriceHdrUid Job price header unique identifier
     * @returns Complete job price header details including contract information
     * @throws ValidationError When response is malformed
     * @example
     * ```typescript
     * const header = await client.jobPriceHdr.get(12345);
     * console.log('Job:', header.job_no, header.job_description);
     * console.log('Customer:', header.customer_id);
     * console.log('Contract:', header.contract_no);
     * console.log('Period:', header.start_date, 'to', header.end_date);
     * ```
     */
    get: (jobPriceHdrUid: number) => Promise<BaseResponse<JobPriceHdr>>;
    /**
     * Job Price Line endpoints
     * @description Methods for managing individual line items within job pricing contracts
     * @fullPath api.pricing.jobPriceHdr.lines
     * @service pricing
     * @domain job-pricing-lines
     * @discoverable true
     * @searchTerms ["job price lines", "job line items", "pricing line items", "contract lines"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr"]
     * @commonPatterns ["list job lines", "get job line", "job line items"]
     */
    lines: {
        /**
         * List job price lines for a specific header
         * @description Retrieves job price lines with optional filtering by status, inventory, and other criteria
         * @fullPath api.pricing.jobPriceHdr.lines.list
         * @service pricing
         * @domain job-pricing-lines
         * @dataMethod jobPriceHdrData.lines.list
         * @discoverable true
         * @searchTerms ["job price lines", "list job lines", "job line items", "contract lines"]
         * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.get"]
         * @commonPatterns ["list job lines", "search job lines", "job line items list"]
         * @param jobPriceHdrUid Job price header unique identifier
         * @param params Optional filtering and pagination parameters
         * @returns Paginated list of job price lines with total count
         * @throws ValidationError When parameters are invalid or response is malformed
         * @example
         * ```typescript
         * // Get all lines for a job
         * const lines = await client.jobPriceHdr.lines.list(12345);
         *
         * // Filter by status and inventory
         * const activeLines = await client.jobPriceHdr.lines.list(12345, {
         *   statusCd: 704, // Active
         *   invMastUid: 11111,
         *   limit: 50
         * });
         *
         * console.log(`Found ${activeLines.total} active lines`);
         * activeLines.data.forEach(line => {
         *   console.log(`${line.item_id}: $${line.price} (${line.uom})`);
         * });
         * ```
         */
        list: (jobPriceHdrUid: number, params?: JobPriceLineListParams) => Promise<BaseResponse<JobPriceLine[]>>;
        /**
         * Get specific job price line details
         * @description Retrieves detailed information for a specific job price line including pricing method and cost basis
         * @fullPath api.pricing.jobPriceHdr.lines.get
         * @service pricing
         * @domain job-pricing-lines
         * @dataMethod jobPriceHdrData.lines.get
         * @discoverable true
         * @searchTerms ["job price line", "get job line", "job line details", "pricing line"]
         * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.list"]
         * @commonPatterns ["get job line", "job line details", "pricing line details"]
         * @param jobPriceHdrUid Job price header unique identifier
         * @param jobPriceLineUid Job price line unique identifier
         * @returns Complete job price line details including extended pricing information
         * @throws ValidationError When response is malformed
         * @example
         * ```typescript
         * const line = await client.jobPriceHdr.lines.get(12345, 67890);
         * console.log('Item:', line.item_id, line.item_description);
         * console.log('Price:', line.price, line.uom);
         * console.log('Quantities - Ordered:', line.qty_ordered, 'Max:', line.qty_maximum);
         * console.log('Margins - Discount:', line.discount_percent, 'Margin:', line.margin_percent);
         * ```
         */
        get: (jobPriceHdrUid: number, jobPriceLineUid: number) => Promise<BaseResponse<JobPriceLine>>;
    };
};
/**
 * Creates the jobPriceHdrData resource methods (data-only versions)
 */
export declare function createJobPriceHdrDataResource(jobPriceHdr: ReturnType<typeof createJobPriceHdrResource>): {
    /**
     * List job price headers data without response metadata
     * @fullPath api.pricing.jobPriceHdrData.list
     * @service pricing
     * @domain job-pricing
     * @discoverable true
     * @searchTerms ["job price header data", "list job header data", "job pricing data"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr.list"]
     * @commonPatterns ["list job header data", "job pricing data list"]
     * @returns Promise<JobPriceHdr[]> Job price headers data directly
     */
    list: (params?: JobPriceHdrListParams) => Promise<JobPriceHdr[]>;
    /**
     * Get job price header data without response metadata
     * @fullPath api.pricing.jobPriceHdrData.get
     * @service pricing
     * @domain job-pricing
     * @discoverable true
     * @searchTerms ["job price header data", "get job header data", "job pricing data"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr.get"]
     * @commonPatterns ["get job header data", "job pricing data"]
     * @returns Promise<JobPriceHdr> Job price header data directly
     */
    get: (jobPriceHdrUid: number) => Promise<JobPriceHdr>;
    /**
     * Job Price Lines Data Operations
     * @description Direct access to job price lines data without response metadata
     * @fullPath api.pricing.jobPriceHdrData.lines
     * @service pricing
     * @domain job-pricing-lines
     * @discoverable true
     * @searchTerms ["job price lines data", "job line data", "pricing line data"]
     * @relatedEndpoints ["api.pricing.jobPriceHdr.lines"]
     * @commonPatterns ["get job line data", "job pricing line data"]
     */
    lines: {
        /**
         * List job price lines data without response metadata
         * @fullPath api.pricing.jobPriceHdrData.lines.list
         * @service pricing
         * @domain job-pricing-lines
         * @discoverable true
         * @searchTerms ["job price lines data", "list job line data", "pricing line data"]
         * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.list"]
         * @commonPatterns ["list job line data", "job pricing line data list"]
         * @returns Promise<JobPriceLine[]> Job price lines data directly
         */
        list: (jobPriceHdrUid: number, params?: JobPriceLineListParams) => Promise<JobPriceLine[]>;
        /**
         * Get job price line data without response metadata
         * @fullPath api.pricing.jobPriceHdrData.lines.get
         * @service pricing
         * @domain job-pricing-lines
         * @discoverable true
         * @searchTerms ["job price line data", "get job line data", "pricing line data"]
         * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.get"]
         * @commonPatterns ["get job line data", "job pricing line data"]
         * @returns Promise<JobPriceLine> Job price line data directly
         */
        get: (jobPriceHdrUid: number, jobPriceLineUid: number) => Promise<JobPriceLine>;
    };
};
export type JobPriceHdrResource = ReturnType<typeof createJobPriceHdrResource>;
export type JobPriceHdrDataResource = ReturnType<typeof createJobPriceHdrDataResource>;
export {};
//# sourceMappingURL=job-price-hdr.d.ts.map