import type { LegacyClient } from '../client';
import type { CreateInvMastTagRequest, UpdateInvMastTagRequest, CreateInvMastWebDescRequest, UpdateInvMastWebDescRequest, AlsoBoughtListResponse, InvMastTagListResponse, InvMastTagResponse, InvMastWebDescListResponse, InvMastWebDescResponse, DeleteResponse } from '../schemas';
type ExecuteRequest = LegacyClient['executeRequest'];
/**
 * Creates the invMast resource methods
 * OpenAPI Path: /inv-mast → invMast.*
 * @description Inventory master operations including also-bought, tags, and web descriptions
 */
export declare function createInvMastResource(executeRequest: ExecuteRequest): {
    /**
     * Also-bought analysis operations
     */
    alsoBought: {
        /**
         * List products frequently bought with a specific item
         * @fullPath api.legacy.invMast.alsoBought.list
         * @service legacy
         * @domain product-recommendations
         * @dataMethod invMastData.alsoBought.list
         * @discoverable true
         */
        list: (invMastUid: number) => Promise<AlsoBoughtListResponse>;
    };
    /**
     * Inventory tags management
     */
    tags: {
        /**
         * List tags for an inventory item
         * @fullPath api.legacy.invMast.tags.list
         * @service legacy
         * @domain inventory-metadata
         * @dataMethod invMastData.tags.list
         * @discoverable true
         */
        list: (invMastUid: number) => Promise<InvMastTagListResponse>;
        /**
         * Get specific tag details
         * @fullPath api.legacy.invMast.tags.get
         * @service legacy
         * @domain inventory-metadata
         * @dataMethod invMastData.tags.get
         * @discoverable true
         */
        get: (invMastUid: number, invMastTagsUid: number) => Promise<InvMastTagResponse>;
        /**
         * Create a new tag for an inventory item
         * @fullPath api.legacy.invMast.tags.create
         * @service legacy
         * @domain inventory-metadata
         * @dataMethod invMastData.tags.create
         * @discoverable true
         */
        create: (invMastUid: number, tagData: CreateInvMastTagRequest) => Promise<InvMastTagResponse>;
        /**
         * Update an existing inventory tag
         * @fullPath api.legacy.invMast.tags.update
         * @service legacy
         * @domain inventory-metadata
         * @dataMethod invMastData.tags.update
         * @discoverable true
         */
        update: (invMastUid: number, invMastTagsUid: number, tagData: UpdateInvMastTagRequest) => Promise<InvMastTagResponse>;
        /**
         * Delete an inventory tag
         * @fullPath api.legacy.invMast.tags.delete
         * @service legacy
         * @domain inventory-metadata
         * @dataMethod invMastData.tags.delete
         * @discoverable true
         */
        delete: (invMastUid: number, invMastTagsUid: number) => Promise<DeleteResponse>;
    };
    /**
     * Web descriptions management
     */
    webDesc: {
        /**
         * List web descriptions for an inventory item
         * @fullPath api.legacy.invMast.webDesc.list
         * @service legacy
         * @domain content-management
         * @dataMethod invMastData.webDesc.list
         * @discoverable true
         */
        list: (invMastUid: number) => Promise<InvMastWebDescListResponse>;
        /**
         * Get specific web description details
         * @fullPath api.legacy.invMast.webDesc.get
         * @service legacy
         * @domain content-management
         * @dataMethod invMastData.webDesc.get
         * @discoverable true
         */
        get: (invMastUid: number, invMastWebDescUid: number) => Promise<InvMastWebDescResponse>;
        /**
         * Create a new web description
         * @fullPath api.legacy.invMast.webDesc.create
         * @service legacy
         * @domain content-management
         * @dataMethod invMastData.webDesc.create
         * @discoverable true
         */
        create: (invMastUid: number, descData: CreateInvMastWebDescRequest) => Promise<InvMastWebDescResponse>;
        /**
         * Update an existing web description
         * @fullPath api.legacy.invMast.webDesc.update
         * @service legacy
         * @domain content-management
         * @dataMethod invMastData.webDesc.update
         * @discoverable true
         */
        update: (invMastUid: number, invMastWebDescUid: number, descData: UpdateInvMastWebDescRequest) => Promise<InvMastWebDescResponse>;
        /**
         * Delete a web description
         * @fullPath api.legacy.invMast.webDesc.delete
         * @service legacy
         * @domain content-management
         * @dataMethod invMastData.webDesc.delete
         * @discoverable true
         */
        delete: (invMastUid: number, invMastWebDescUid: number) => Promise<DeleteResponse>;
    };
};
/**
 * Creates the invMastData resource methods (data-only versions)
 */
export declare function createInvMastDataResource(invMast: ReturnType<typeof createInvMastResource>): {
    alsoBought: {
        list: (invMastUid: number) => Promise<import("zod").objectOutputType<{
            invMastUid: import("zod").ZodNumber;
        }, import("zod").ZodTypeAny, "passthrough">[]>;
    };
    tags: {
        list: (invMastUid: number) => Promise<import("zod").objectOutputType<{
            invMastTagsUid: import("zod").ZodNumber;
        }, import("zod").ZodTypeAny, "passthrough">[]>;
        get: (invMastUid: number, invMastTagsUid: number) => Promise<{
            invMastTagsUid: number;
        } & {
            [k: string]: unknown;
        }>;
        create: (invMastUid: number, tagData: CreateInvMastTagRequest) => Promise<{
            invMastTagsUid: number;
        } & {
            [k: string]: unknown;
        }>;
        update: (invMastUid: number, invMastTagsUid: number, tagData: UpdateInvMastTagRequest) => Promise<{
            invMastTagsUid: number;
        } & {
            [k: string]: unknown;
        }>;
        delete: (invMastUid: number, invMastTagsUid: number) => Promise<{
            message: string;
            deleted: boolean;
        }>;
    };
    webDesc: {
        list: (invMastUid: number) => Promise<import("zod").objectOutputType<{
            invMastWebDescUid: import("zod").ZodNumber;
        }, import("zod").ZodTypeAny, "passthrough">[]>;
        get: (invMastUid: number, invMastWebDescUid: number) => Promise<{
            invMastWebDescUid: number;
        } & {
            [k: string]: unknown;
        }>;
        create: (invMastUid: number, descData: CreateInvMastWebDescRequest) => Promise<{
            invMastWebDescUid: number;
        } & {
            [k: string]: unknown;
        }>;
        update: (invMastUid: number, invMastWebDescUid: number, descData: UpdateInvMastWebDescRequest) => Promise<{
            invMastWebDescUid: number;
        } & {
            [k: string]: unknown;
        }>;
        delete: (invMastUid: number, invMastWebDescUid: number) => Promise<{
            message: string;
            deleted: boolean;
        }>;
    };
};
export type InvMastResource = ReturnType<typeof createInvMastResource>;
export type InvMastDataResource = ReturnType<typeof createInvMastDataResource>;
export {};
//# sourceMappingURL=inv-mast.d.ts.map