import { type TransCategoryCreateParams } from '../schemas';
import type { P21ApisClient } from '../client';
type ExecuteRequest = P21ApisClient['executeRequest'];
/**
 * Creates the transCategory resource methods
 * OpenAPI Path: /trans-category → transCategory.*
 * @description Category management and CRUD operations following OpenAPI path mirroring pattern
 */
export declare function createTransCategoryResource(executeRequest: ExecuteRequest): {
    /**
     * Create new transaction category - OpenAPI Path: /trans-category
     * @description Creates a new category within the P21 transactional system. Returns the created category details for verification and further operations.
     *
     * @fullPath api.p21Apis.transCategory.create
     * @service p21-apis
     * @domain category-management
     * @dataMethod transCategoryData.create
     * @discoverable true
     * @searchTerms ["create category", "new category", "category creation", "add category"]
     * @relatedEndpoints ["api.p21Apis.transCategory.get", "api.p21Apis.transCategory.update", "api.items.categories.list"]
     * @commonPatterns ["Create new category", "Add category to system", "Category setup", "Product categorization"]
     * @workflow ["category-setup", "product-management", "inventory-organization", "catalog-management"]
     * @prerequisites ["Valid site ID", "Category creation permissions", "Authentication"]
     * @nextSteps ["api.p21Apis.transCategory.get for verification", "api.items.categories for category associations"]
     * @businessRules ["Site-scoped category creation", "Unique category constraints", "Category hierarchy support"]
     * @functionalArea "category-management"
     * @performance "Real-time category creation with immediate availability"
     */
    create: (params?: TransCategoryCreateParams) => 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 category details by category UID - OpenAPI Path: /trans-category/{categoryUid}
     * @description Retrieves comprehensive category details including metadata, relationships, and configuration. Used for category management and verification workflows.
     *
     * @fullPath api.p21Apis.transCategory.get
     * @service p21-apis
     * @domain category-management
     * @dataMethod transCategoryData.get
     * @discoverable true
     * @searchTerms ["category details", "get category", "category info", "category lookup"]
     * @relatedEndpoints ["api.p21Apis.transCategory.update", "api.p21Apis.transCategory.delete", "api.items.categories.get"]
     * @commonPatterns ["Get category details", "View category information", "Category lookup", "Category verification"]
     * @workflow ["category-details", "product-management", "inventory-lookup", "catalog-browsing"]
     * @prerequisites ["Valid category UID", "Site ID", "Category access permissions"]
     * @nextSteps ["api.p21Apis.transCategory.update for modifications", "api.items.categories for related products"]
     * @businessRules ["Category UID must exist", "Site-scoped access", "Optional category ID validation"]
     * @functionalArea "category-management"
     * @performance "Direct lookup by UID, very fast response"
     */
    get: (categoryUid: number, params?: {
        categoryId?: 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 category by category UID - OpenAPI Path: /trans-category/{categoryUid}
     * @description Updates existing category information including metadata and relationships. Returns updated category details for verification.
     *
     * @fullPath api.p21Apis.transCategory.update
     * @service p21-apis
     * @domain category-management
     * @dataMethod transCategoryData.update
     * @discoverable true
     * @searchTerms ["update category", "modify category", "category update", "edit category"]
     * @relatedEndpoints ["api.p21Apis.transCategory.get", "api.p21Apis.transCategory.delete", "api.items.categories.update"]
     * @commonPatterns ["Update category information", "Modify category details", "Category maintenance", "Category editing"]
     * @workflow ["category-management", "product-management", "inventory-maintenance", "catalog-updates"]
     * @prerequisites ["Valid category UID", "Site ID", "Category modification permissions"]
     * @nextSteps ["api.p21Apis.transCategory.get for verification", "api.items.categories for related updates"]
     * @businessRules ["Category UID must exist", "Site-scoped modifications", "Data validation requirements"]
     * @functionalArea "category-management"
     * @performance "Real-time category updates with immediate effect"
     */
    update: (categoryUid: number, params?: {
        categoryId?: 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 category by category UID - OpenAPI Path: /trans-category/{categoryUid}
     * @description Removes category from the P21 transactional system. Returns deletion confirmation and handles cascade operations.
     *
     * @fullPath api.p21Apis.transCategory.delete
     * @service p21-apis
     * @domain category-management
     * @dataMethod transCategoryData.delete
     * @discoverable true
     * @searchTerms ["delete category", "remove category", "category deletion", "category removal"]
     * @relatedEndpoints ["api.p21Apis.transCategory.create", "api.p21Apis.transCategory.get", "api.items.categories.delete"]
     * @commonPatterns ["Delete category", "Remove category from system", "Category cleanup", "Category removal"]
     * @workflow ["category-management", "system-cleanup", "inventory-maintenance", "catalog-management"]
     * @prerequisites ["Valid category UID", "Site ID", "Category deletion permissions"]
     * @nextSteps ["api.items.categories.list to verify removal", "related product reassignment if needed"]
     * @businessRules ["Category UID must exist", "Cascade deletion rules", "Related entity validation"]
     * @functionalArea "category-management"
     * @performance "Real-time category deletion with immediate effect"
     */
    delete: (categoryUid: number, params?: {
        categoryId?: 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 transCategoryData resource methods (data-only versions)
 */
export declare function createTransCategoryDataResource(transCategory: ReturnType<typeof createTransCategoryResource>): {
    /**
     * Create category and return only data without response metadata
     */
    create: (params?: TransCategoryCreateParams) => Promise<unknown>;
    /**
     * Get category and return only data without response metadata
     */
    get: (categoryUid: number, params?: {
        categoryId?: string;
    }) => Promise<unknown>;
    /**
     * Update category and return only data without response metadata
     */
    update: (categoryUid: number, params?: {
        categoryId?: string;
    }) => Promise<unknown>;
    /**
     * Delete category and return only data without response metadata
     */
    delete: (categoryUid: number, params?: {
        categoryId?: string;
    }) => Promise<unknown>;
};
export type TransCategoryResource = ReturnType<typeof createTransCategoryResource>;
export type TransCategoryDataResource = ReturnType<typeof createTransCategoryDataResource>;
export {};
//# sourceMappingURL=trans-category.d.ts.map