import type { TItem } from './product-search.type';
import type { TProductCard001 } from '../product-card/product-card-001';
export declare const productSearchItemsState: import("jotai/vanilla/utils/atomFamily").AtomFamily<{
    id: string;
    values?: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[] | undefined;
}, import("jotai").PrimitiveAtom<{
    id: string;
    values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
}> & {
    init: {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    };
}>;
export declare const productSearchItemState: import("jotai/vanilla/utils/atomFamily").AtomFamily<{
    searchId: string;
    prodCode: string;
    values?: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[] | undefined;
}, import("jotai").WritableAtom<TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase, [arg: TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase], void>>;
type TOptionDataList = {
    optionType: string;
    optionCode: string;
    valueCode: string;
};
type TOrderAddConfirmItems = {
    orderSectionItemCode?: string;
    prodCode: string;
    prodOptionDetailCode?: string;
    qty?: number;
    baseItemPrice: number;
    itemPrice: number;
    isIndividualOption?: string;
    isRequireOption?: string;
    optionDataList?: TOptionDataList[];
    [key: string]: unknown;
    /**
     * 금액계산만을 위한 타입을 임시로 상품추가타입에 끼워넣어서 가져와서 사용할 것이다.
     * 상품추가 API -> https://api.oms.imstage.me/admin/docs#tag/%EC%A3%BC%EB%AC%B8-%EC%84%B9%EC%85%98/operation/OrderSectionController_createOrderSectionAndItem
     * 금액계산 API -> https://api.oms.imstage.me/admin/docs#tag/%EC%A3%BC%EB%AC%B8-%EC%84%B9%EC%85%98/operation/OrderSectionController_calclateAddItemsPrice
     * 다른부분이 조금있다.
     */
    type: 'normal' | 'digital' | 'subscribe' | string;
};
export declare const useProductSearchAtom: {
    items: (id: string) => [{
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    }, (args_0: {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    } | ((prev: {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    }) => {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    })) => void];
    getItems: (id: string) => {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    };
    setItems: (id: string) => (args_0: {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    } | ((prev: {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    }) => {
        id: string;
        values: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[];
    })) => void;
    /**
     * (Readonly) 체크된 상품만 가져오기
     */
    selectedItems: (searchId: string) => {
        values: TItem[];
        id: string;
    } | undefined;
    /**
     * (Readonly) 체크된 상품의 총갯수 가져오기
     */
    allSelectedCount: (searchId: string) => {
        searchId: string;
        count: number;
    } | undefined;
    /**
     * (Readonly)
     */
    selectedItemsToTProductCard001: (searchId: string) => TProductCard001.props[] | undefined;
    selectedItemsToConfirm: (searchId: string) => TOrderAddConfirmItems[] | undefined;
    itemAtom: import("jotai/vanilla/utils/atomFamily").AtomFamily<{
        searchId: string;
        prodCode: string;
        values?: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[] | undefined;
    }, import("jotai").WritableAtom<TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase, [arg: TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase], void>>;
    itemSelectedAtom: import("jotai/vanilla/utils/atomFamily").AtomFamily<{
        searchId: string;
        prodCode: string;
        values?: (TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase)[] | undefined;
    }, import("jotai").WritableAtom<(TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase) | undefined, [arg: TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase], void>>;
    item: (searchId: string, prodCode: string) => [TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase, (arg: TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase) => void];
    getItem: (searchId: string, prodCode: string) => TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase;
    setItem: (searchId: string, prodCode: string) => (arg: TItem & import("../product-search-item/product-search-item-base").TProductSearchItemBase) => void;
};
export {};
