import { type TransCompanyCreateParams } from '../schemas';
import type { P21ApisClient } from '../client';
type ExecuteRequest = P21ApisClient['executeRequest'];
/**
 * Creates the transCompany resource methods
 * OpenAPI Path: /trans-company → transCompany.*
 * @description Company management and CRUD operations following OpenAPI path mirroring pattern
 */
export declare function createTransCompanyResource(executeRequest: ExecuteRequest): {
    /**
     * Create new transaction company - OpenAPI Path: /trans-company
     * @description Creates a new company entity within the P21 transactional system. Returns the created company details for verification and further operations.
     *
     * @fullPath api.p21Apis.transCompany.create
     * @service p21-apis
     * @domain company-management
     * @dataMethod transCompanyData.create
     * @discoverable true
     * @searchTerms ["create company", "new company", "company creation", "add company"]
     * @relatedEndpoints ["api.p21Apis.transCompany.get", "api.p21Apis.transCompany.update", "api.p21Core.company.list"]
     * @commonPatterns ["Create new company", "Add company to system", "Company setup", "Business entity creation"]
     * @workflow ["company-setup", "business-management", "corporate-structure", "entity-management"]
     * @prerequisites ["Valid site ID", "Company creation permissions", "Authentication"]
     * @nextSteps ["api.p21Apis.transCompany.get for verification", "api.p21Core.company for company operations"]
     * @businessRules ["Site-scoped company creation", "Unique company constraints", "Corporate hierarchy support"]
     * @functionalArea "company-management"
     * @performance "Real-time company creation with immediate availability"
     */
    create: (params?: TransCompanyCreateParams) => Promise<{
        params: Record<string, unknown> | unknown[];
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
        data?: unknown;
    }>;
    /**
     * Get transaction company details by company UID - OpenAPI Path: /trans-company/{companyUid}
     */
    get: (companyUid: number, params?: {
        companyId?: string;
    }) => Promise<{
        params: Record<string, unknown> | unknown[];
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
        data?: unknown;
    }>;
    /**
     * Update transaction company by company UID - OpenAPI Path: /trans-company/{companyUid}
     */
    update: (companyUid: number, params?: {
        companyId?: string;
    }) => Promise<{
        params: Record<string, unknown> | unknown[];
        options: Record<string, unknown> | unknown[];
        status: number;
        message: string;
        count: number;
        total: number;
        totalResults: number;
        data?: unknown;
    }>;
    /**
     * Delete transaction company by company UID - OpenAPI Path: /trans-company/{companyUid}
     */
    delete: (companyUid: number, params?: {
        companyId?: string;
    }) => 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 transCompanyData resource methods (data-only versions)
 */
export declare function createTransCompanyDataResource(transCompany: ReturnType<typeof createTransCompanyResource>): {
    /**
     * Create company and return only data without response metadata
     */
    create: (params?: TransCompanyCreateParams) => Promise<unknown>;
    /**
     * Get company and return only data without response metadata
     */
    get: (companyUid: number, params?: {
        companyId?: string;
    }) => Promise<unknown>;
    /**
     * Update company and return only data without response metadata
     */
    update: (companyUid: number, params?: {
        companyId?: string;
    }) => Promise<unknown>;
    /**
     * Delete company and return only data without response metadata
     */
    delete: (companyUid: number, params?: {
        companyId?: string;
    }) => Promise<unknown>;
};
export type TransCompanyResource = ReturnType<typeof createTransCompanyResource>;
export type TransCompanyDataResource = ReturnType<typeof createTransCompanyDataResource>;
export {};
//# sourceMappingURL=trans-company.d.ts.map