export declare class CreatePosCategoryDto {
    code: string;
    name: string;
    parent_id?: number;
    sort_order?: number;
    status?: string;
}
export declare class UpdatePosCategoryDto extends CreatePosCategoryDto {
}
export declare class CreatePosProductDto {
    sku: string;
    name: string;
    category_id?: number;
    product_type?: string;
    unit_name?: string;
    has_variants?: number;
    track_inventory?: number;
    is_sellable?: number;
    metadata_json?: Record<string, unknown>;
    status?: string;
}
export declare class UpdatePosProductDto extends CreatePosProductDto {
}
export declare class ProductImageInput {
    image_url: string;
    alt_text?: string;
    sort_order?: number;
    is_primary?: boolean;
    metadata_json?: Record<string, unknown>;
}
export declare class InventoryLocationInput {
    location_id: number;
    quantity: number;
}
export declare class CreatePosVariantDto {
    product_id: number;
    sku: string;
    name: string;
    attributes_json?: Record<string, unknown>;
    cost_price?: number;
    default_price?: number;
    track_inventory?: number;
    inventory_locations?: InventoryLocationInput[];
    status?: string;
    images?: ProductImageInput[];
}
export declare class UpdatePosVariantDto extends CreatePosVariantDto {
}
export declare class CreatePosBarcodeDto {
    barcode: string;
    barcode_type?: string;
    entity_type?: string;
    product_id?: number;
    variant_id?: number;
    unit_multiplier?: number;
    is_primary?: number;
    status?: string;
}
export declare class UpdatePosBarcodeDto extends CreatePosBarcodeDto {
}
export declare class CreatePosPriceBookDto {
    code: string;
    name: string;
    store_id?: number;
    effective_from?: string;
    effective_to?: string;
    status?: string;
}
export declare class UpdatePosPriceBookDto extends CreatePosPriceBookDto {
}
export declare class CreatePosPriceBookItemDto {
    variant_id: number;
    price: number;
    status?: string;
}
export declare class CreatePosProductImageDto {
    product_id: number;
    variant_id?: number;
    image_url: string;
    alt_text?: string;
    sort_order?: number;
    is_primary?: boolean;
}
export declare class CreatePosProductBundleItemDto {
    product_id: number;
    variant_id?: number;
    quantity: number;
    unit_cost?: number;
    sort_order?: number;
}
export declare class CreatePosProductBundleDto {
    bundle_code: string;
    name: string;
    product_id?: number;
    description?: string;
    bundle_price: number;
    is_active?: boolean;
    items: CreatePosProductBundleItemDto[];
}
export declare class UpdatePosProductBundleDto {
    name?: string;
    description?: string;
    bundle_price?: number;
    is_active?: boolean;
}
export declare class CreatePosProductOptionDto {
    product_id: number;
    name: string;
    display_name?: string;
    option_type?: string;
    sort_order?: number;
    is_required?: number;
    is_variant_defining?: number;
    status?: string;
}
export declare class UpdatePosProductOptionDto extends CreatePosProductOptionDto {
}
export declare class CreatePosProductOptionValueDto {
    option_id: number;
    product_id: number;
    value: string;
    display_value?: string;
    color_hex?: string;
    image_url?: string;
    sort_order?: number;
    status?: string;
}
export declare class UpdatePosProductOptionValueDto extends CreatePosProductOptionValueDto {
}
export declare class CreatePosProductOptionInput {
    name: string;
    display_name?: string;
    option_type?: string;
    is_required?: number;
    values: string[];
}
export declare class CreatePosProductVariantOptionInput {
    option_id?: number;
    option_index?: number;
    value: string;
}
export declare class CreatePosProductVariantInput {
    sku: string;
    name: string;
    cost_price?: number;
    default_price?: number;
    track_inventory?: number;
    inventory_locations?: InventoryLocationInput[];
    attributes_json?: Record<string, unknown>;
    status?: string;
    option_values: CreatePosProductVariantOptionInput[];
    images?: ProductImageInput[];
}
export declare class CreatePosProductFullDto {
    sku: string;
    name: string;
    category_id?: number;
    description?: string;
    product_type?: string;
    unit_name?: string;
    has_variants?: number;
    track_inventory?: number;
    is_sellable?: number;
    metadata_json?: Record<string, unknown>;
    status?: string;
    inventory_locations?: InventoryLocationInput[];
    options?: CreatePosProductOptionInput[];
    variants?: CreatePosProductVariantInput[];
    images?: ProductImageInput[];
}
export declare class UpdatePosProductOptionInput {
    id?: number;
    name: string;
    display_name?: string;
    option_type?: string;
    is_required?: number;
    values: string[];
}
export declare class UpdatePosProductVariantOptionInput {
    option_id?: number;
    option_value_id?: number;
    option_index?: number;
    value: string;
}
export declare class UpdatePosProductVariantInput {
    id?: number;
    sku: string;
    name: string;
    cost_price?: number;
    default_price?: number;
    track_inventory?: number;
    inventory_locations?: InventoryLocationInput[];
    attributes_json?: Record<string, unknown>;
    status?: string;
    option_values: UpdatePosProductVariantOptionInput[];
    images?: ProductImageInput[];
}
export declare class UpdatePosProductFullDto {
    sku?: string;
    name?: string;
    description?: string;
    category_id?: number;
    product_type?: string;
    unit_name?: string;
    has_variants?: number;
    track_inventory?: number;
    is_sellable?: number;
    metadata_json?: Record<string, unknown>;
    status?: string;
    inventory_locations?: InventoryLocationInput[];
    options?: UpdatePosProductOptionInput[];
    variants?: UpdatePosProductVariantInput[];
    images?: ProductImageInput[];
}
export declare class CreatePosPromotionConditionInput {
    condition_type: string;
    condition_value: string;
    operator?: string;
}
export declare class CreatePosPromotionRuleDto {
    code: string;
    name: string;
    description?: string;
    promotion_type: string;
    discount_value?: number;
    min_quantity?: number;
    min_amount?: number;
    max_uses?: number;
    max_uses_per_customer?: number;
    applies_to?: string;
    applicable_ids?: number[];
    stackable?: number;
    priority?: number;
    store_id?: number;
    start_date?: string;
    end_date?: string;
    status?: string;
    created_by_user_id?: number;
    conditions?: CreatePosPromotionConditionInput[];
}
export declare class UpdatePosPromotionRuleDto {
    name?: string;
    description?: string;
    promotion_type?: string;
    discount_value?: number;
    min_quantity?: number;
    min_amount?: number;
    max_uses?: number;
    max_uses_per_customer?: number;
    applies_to?: string;
    applicable_ids?: number[];
    stackable?: number;
    priority?: number;
    start_date?: string;
    end_date?: string;
    status?: string;
}
export declare class EvaluatePosPromotionsDto {
    store_id?: number;
    subtotal: number;
    items: Array<{
        product_id?: number;
        variant_id?: number;
        quantity: number;
        unit_price: number;
        line_total: number;
    }>;
    customer_id?: number;
}
