import { Database, Transaction, Querier } from '@platform-modules/db';
import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';

declare const stockLocation: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "stock_location";
    schema: undefined;
    columns: {
        id: drizzle_orm_pg_core.PgColumn<{
            name: "id";
            tableName: "stock_location";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        tenantId: drizzle_orm_pg_core.PgColumn<{
            name: "tenant_id";
            tableName: "stock_location";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        name: drizzle_orm_pg_core.PgColumn<{
            name: "name";
            tableName: "stock_location";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        code: drizzle_orm_pg_core.PgColumn<{
            name: "code";
            tableName: "stock_location";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        isDefault: drizzle_orm_pg_core.PgColumn<{
            name: "is_default";
            tableName: "stock_location";
            dataType: "boolean";
            columnType: "PgBoolean";
            data: boolean;
            driverParam: boolean;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        isActive: drizzle_orm_pg_core.PgColumn<{
            name: "is_active";
            tableName: "stock_location";
            dataType: "boolean";
            columnType: "PgBoolean";
            data: boolean;
            driverParam: boolean;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: drizzle_orm_pg_core.PgColumn<{
            name: "created_at";
            tableName: "stock_location";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        updatedAt: drizzle_orm_pg_core.PgColumn<{
            name: "updated_at";
            tableName: "stock_location";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const stockItem: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "stock_item";
    schema: undefined;
    columns: {
        id: drizzle_orm_pg_core.PgColumn<{
            name: "id";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        tenantId: drizzle_orm_pg_core.PgColumn<{
            name: "tenant_id";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        sku: drizzle_orm_pg_core.PgColumn<{
            name: "sku";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        name: drizzle_orm_pg_core.PgColumn<{
            name: "name";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        uom: drizzle_orm_pg_core.PgColumn<{
            name: "uom";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        method: drizzle_orm_pg_core.PgColumn<{
            name: "method";
            tableName: "stock_item";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        isActive: drizzle_orm_pg_core.PgColumn<{
            name: "is_active";
            tableName: "stock_item";
            dataType: "boolean";
            columnType: "PgBoolean";
            data: boolean;
            driverParam: boolean;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: drizzle_orm_pg_core.PgColumn<{
            name: "created_at";
            tableName: "stock_item";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        updatedAt: drizzle_orm_pg_core.PgColumn<{
            name: "updated_at";
            tableName: "stock_item";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const stockMovement: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "stock_movement";
    schema: undefined;
    columns: {
        id: drizzle_orm_pg_core.PgColumn<{
            name: "id";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        tenantId: drizzle_orm_pg_core.PgColumn<{
            name: "tenant_id";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        itemId: drizzle_orm_pg_core.PgColumn<{
            name: "item_id";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        locationId: drizzle_orm_pg_core.PgColumn<{
            name: "location_id";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        kind: drizzle_orm_pg_core.PgColumn<{
            name: "kind";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        qtyDelta: drizzle_orm_pg_core.PgColumn<{
            name: "qty_delta";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        unitCost: drizzle_orm_pg_core.PgColumn<{
            name: "unit_cost";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        cogsAmount: drizzle_orm_pg_core.PgColumn<{
            name: "cogs_amount";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        pendingCost: drizzle_orm_pg_core.PgColumn<{
            name: "pending_cost";
            tableName: "stock_movement";
            dataType: "boolean";
            columnType: "PgBoolean";
            data: boolean;
            driverParam: boolean;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        holderRef: drizzle_orm_pg_core.PgColumn<{
            name: "holder_ref";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        transferGroup: drizzle_orm_pg_core.PgColumn<{
            name: "transfer_group";
            tableName: "stock_movement";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        occurredAt: drizzle_orm_pg_core.PgColumn<{
            name: "occurred_at";
            tableName: "stock_movement";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: drizzle_orm_pg_core.PgColumn<{
            name: "created_at";
            tableName: "stock_movement";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const stockCostLayer: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "stock_cost_layer";
    schema: undefined;
    columns: {
        id: drizzle_orm_pg_core.PgColumn<{
            name: "id";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        tenantId: drizzle_orm_pg_core.PgColumn<{
            name: "tenant_id";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        itemId: drizzle_orm_pg_core.PgColumn<{
            name: "item_id";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        locationId: drizzle_orm_pg_core.PgColumn<{
            name: "location_id";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        receiptMovementId: drizzle_orm_pg_core.PgColumn<{
            name: "receipt_movement_id";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        unitCost: drizzle_orm_pg_core.PgColumn<{
            name: "unit_cost";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        qtyRemaining: drizzle_orm_pg_core.PgColumn<{
            name: "qty_remaining";
            tableName: "stock_cost_layer";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: drizzle_orm_pg_core.PgColumn<{
            name: "created_at";
            tableName: "stock_cost_layer";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const stockPosition: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "stock_position";
    schema: undefined;
    columns: {
        tenantId: drizzle_orm_pg_core.PgColumn<{
            name: "tenant_id";
            tableName: "stock_position";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        itemId: drizzle_orm_pg_core.PgColumn<{
            name: "item_id";
            tableName: "stock_position";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        locationId: drizzle_orm_pg_core.PgColumn<{
            name: "location_id";
            tableName: "stock_position";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        qtyOnHand: drizzle_orm_pg_core.PgColumn<{
            name: "qty_on_hand";
            tableName: "stock_position";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        avgUnitCost: drizzle_orm_pg_core.PgColumn<{
            name: "avg_unit_cost";
            tableName: "stock_position";
            dataType: "string";
            columnType: "PgNumeric";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        updatedAt: drizzle_orm_pg_core.PgColumn<{
            name: "updated_at";
            tableName: "stock_position";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const inventorySchema: {
    stockLocation: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "stock_location";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "stock_location";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            tenantId: drizzle_orm_pg_core.PgColumn<{
                name: "tenant_id";
                tableName: "stock_location";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            name: drizzle_orm_pg_core.PgColumn<{
                name: "name";
                tableName: "stock_location";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            code: drizzle_orm_pg_core.PgColumn<{
                name: "code";
                tableName: "stock_location";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            isDefault: drizzle_orm_pg_core.PgColumn<{
                name: "is_default";
                tableName: "stock_location";
                dataType: "boolean";
                columnType: "PgBoolean";
                data: boolean;
                driverParam: boolean;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            isActive: drizzle_orm_pg_core.PgColumn<{
                name: "is_active";
                tableName: "stock_location";
                dataType: "boolean";
                columnType: "PgBoolean";
                data: boolean;
                driverParam: boolean;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "stock_location";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "stock_location";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    stockItem: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "stock_item";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            tenantId: drizzle_orm_pg_core.PgColumn<{
                name: "tenant_id";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            sku: drizzle_orm_pg_core.PgColumn<{
                name: "sku";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            name: drizzle_orm_pg_core.PgColumn<{
                name: "name";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            uom: drizzle_orm_pg_core.PgColumn<{
                name: "uom";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            method: drizzle_orm_pg_core.PgColumn<{
                name: "method";
                tableName: "stock_item";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            isActive: drizzle_orm_pg_core.PgColumn<{
                name: "is_active";
                tableName: "stock_item";
                dataType: "boolean";
                columnType: "PgBoolean";
                data: boolean;
                driverParam: boolean;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "stock_item";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "stock_item";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    stockMovement: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "stock_movement";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            tenantId: drizzle_orm_pg_core.PgColumn<{
                name: "tenant_id";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            itemId: drizzle_orm_pg_core.PgColumn<{
                name: "item_id";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            locationId: drizzle_orm_pg_core.PgColumn<{
                name: "location_id";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            kind: drizzle_orm_pg_core.PgColumn<{
                name: "kind";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            qtyDelta: drizzle_orm_pg_core.PgColumn<{
                name: "qty_delta";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            unitCost: drizzle_orm_pg_core.PgColumn<{
                name: "unit_cost";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            cogsAmount: drizzle_orm_pg_core.PgColumn<{
                name: "cogs_amount";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            pendingCost: drizzle_orm_pg_core.PgColumn<{
                name: "pending_cost";
                tableName: "stock_movement";
                dataType: "boolean";
                columnType: "PgBoolean";
                data: boolean;
                driverParam: boolean;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            holderRef: drizzle_orm_pg_core.PgColumn<{
                name: "holder_ref";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            transferGroup: drizzle_orm_pg_core.PgColumn<{
                name: "transfer_group";
                tableName: "stock_movement";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            occurredAt: drizzle_orm_pg_core.PgColumn<{
                name: "occurred_at";
                tableName: "stock_movement";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "stock_movement";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    stockCostLayer: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "stock_cost_layer";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            tenantId: drizzle_orm_pg_core.PgColumn<{
                name: "tenant_id";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            itemId: drizzle_orm_pg_core.PgColumn<{
                name: "item_id";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            locationId: drizzle_orm_pg_core.PgColumn<{
                name: "location_id";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            receiptMovementId: drizzle_orm_pg_core.PgColumn<{
                name: "receipt_movement_id";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            unitCost: drizzle_orm_pg_core.PgColumn<{
                name: "unit_cost";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            qtyRemaining: drizzle_orm_pg_core.PgColumn<{
                name: "qty_remaining";
                tableName: "stock_cost_layer";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "stock_cost_layer";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    stockPosition: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "stock_position";
        schema: undefined;
        columns: {
            tenantId: drizzle_orm_pg_core.PgColumn<{
                name: "tenant_id";
                tableName: "stock_position";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            itemId: drizzle_orm_pg_core.PgColumn<{
                name: "item_id";
                tableName: "stock_position";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            locationId: drizzle_orm_pg_core.PgColumn<{
                name: "location_id";
                tableName: "stock_position";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            qtyOnHand: drizzle_orm_pg_core.PgColumn<{
                name: "qty_on_hand";
                tableName: "stock_position";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            avgUnitCost: drizzle_orm_pg_core.PgColumn<{
                name: "avg_unit_cost";
                tableName: "stock_position";
                dataType: "string";
                columnType: "PgNumeric";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "stock_position";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
};
type InventorySchema = typeof inventorySchema;

interface Movement {
    readonly id: string;
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId: string;
    readonly kind: 'receipt' | 'issue' | 'adjust' | 'transfer_out' | 'transfer_in' | 'count_variance';
    readonly qtyDelta: string;
    readonly unitCost: string | null;
    readonly cogsAmount: string | null;
    readonly pendingCost: boolean;
    readonly holderRef: string | null;
    readonly transferGroup: string | null;
    readonly occurredAt: Date;
    readonly createdAt: Date;
}
interface MovementResult {
    readonly movement: Movement;
}
interface TransferResult {
    readonly transferOut: Movement;
    readonly transferIn: Movement;
}
interface OnHand {
    readonly itemId: string;
    readonly locationId?: string;
    readonly qty: string;
    readonly byLocation?: ReadonlyArray<{
        readonly locationId: string;
        readonly qty: string;
    }>;
}
interface Valuation {
    readonly itemId: string;
    readonly qty: string;
    readonly unitCost: string;
    readonly value: string;
    readonly locationId?: string;
}
interface CogsResult {
    readonly total: string;
    readonly byItem?: ReadonlyArray<{
        readonly itemId: string;
        readonly total: string;
    }>;
}
interface CountResult {
    readonly itemId: string;
    readonly countedQty: string;
    readonly variance: string;
    readonly movement: Movement;
}

interface PostReceiptInput {
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId: string;
    readonly qty: number;
    readonly unitCost: number;
    readonly holderRef?: string;
    readonly occurredAt: Date;
}
declare function postReceipt(db: Database<InventorySchema> | Transaction<InventorySchema>, input: PostReceiptInput): Promise<MovementResult>;

interface PostIssueInput {
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId: string;
    readonly qty: number;
    readonly holderRef?: string;
    readonly occurredAt: Date;
    readonly method: 'fifo' | 'weighted_average';
    readonly allowNegative?: boolean;
}
declare function postIssue(db: Database<InventorySchema> | Transaction<InventorySchema>, input: PostIssueInput): Promise<MovementResult>;

interface PostAdjustmentInput {
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId: string;
    readonly qtyDelta: number;
    readonly unitCost?: number;
    readonly reason: string;
    readonly occurredAt: Date;
}
declare function postAdjustment(db: Database<InventorySchema> | Transaction<InventorySchema>, input: PostAdjustmentInput): Promise<MovementResult>;

interface TransferStockInput {
    readonly tenantId: string;
    readonly itemId: string;
    readonly fromLocationId: string;
    readonly toLocationId: string;
    readonly qty: number;
    readonly holderRef: string;
    readonly occurredAt: Date;
}
declare function transferStock(db: Database<InventorySchema> | Transaction<InventorySchema>, input: TransferStockInput): Promise<TransferResult>;

interface ReverseMovementInput {
    readonly tenantId: string;
    readonly holderRef: string;
}
declare function reverseMovement(db: Database<InventorySchema> | Transaction<InventorySchema>, input: ReverseMovementInput): Promise<MovementResult[]>;

interface RecordCountInput {
    readonly tenantId: string;
    readonly locationId: string;
    readonly holderRef: string;
    readonly lines: ReadonlyArray<{
        readonly itemId: string;
        readonly countedQty: number;
    }>;
    readonly occurredAt: Date;
}
declare function recordCount(db: Database<InventorySchema> | Transaction<InventorySchema>, input: RecordCountInput): Promise<CountResult[]>;

interface GetOnHandInput {
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId?: string;
}
interface GetValuationInput {
    readonly tenantId: string;
    readonly itemId?: string;
    readonly asOf: Date;
    readonly locationId?: string;
}
declare function getOnHand(db: Database<InventorySchema> | Transaction<InventorySchema>, input: GetOnHandInput): Promise<OnHand>;
declare function getValuation(db: Database<InventorySchema> | Transaction<InventorySchema>, input: GetValuationInput): Promise<Valuation>;

interface GetCogsInput {
    readonly tenantId: string;
    readonly from: Date;
    readonly to: Date;
    readonly itemId?: string;
}
interface GetMovementsInput {
    readonly tenantId: string;
    readonly itemId?: string;
    readonly locationId?: string;
    readonly from?: Date;
    readonly to?: Date;
}
declare function getCogs(db: Database<InventorySchema> | Transaction<InventorySchema>, input: GetCogsInput): Promise<CogsResult>;
declare function getMovements(db: Database<InventorySchema> | Transaction<InventorySchema>, input: GetMovementsInput): Promise<Movement[]>;

declare class InventoryMigrateError extends Error {
    readonly detail: string;
    readonly name = "InventoryMigrateError";
    readonly code: "INVENTORY_MIGRATE";
    constructor(detail: string);
}
declare function isInventoryMigrateError(e: unknown): e is InventoryMigrateError;
declare function pushSchema(db: Querier<InventorySchema>): Promise<void>;

declare class OversoldError extends Error {
    readonly tenantId: string;
    readonly itemId: string;
    readonly locationId: string;
    readonly requestedQty: number;
    readonly name = "OversoldError";
    readonly code: "OVERSOLD";
    constructor(tenantId: string, itemId: string, locationId: string, requestedQty: number);
}
declare class InventoryValidationError extends Error {
    readonly field: string;
    readonly name = "InventoryValidationError";
    readonly code: "INVENTORY_VALIDATION";
    constructor(field: string);
}
declare class ItemNotFoundError extends Error {
    readonly tenantId: string;
    readonly itemId: string;
    readonly name = "ItemNotFoundError";
    readonly code: "ITEM_NOT_FOUND";
    constructor(tenantId: string, itemId: string);
}
declare class LocationNotFoundError extends Error {
    readonly tenantId: string;
    readonly locationId: string;
    readonly name = "LocationNotFoundError";
    readonly code: "LOCATION_NOT_FOUND";
    constructor(tenantId: string, locationId: string);
}
declare class MovementNotFoundError extends Error {
    readonly tenantId: string;
    readonly holderRef: string;
    readonly name = "MovementNotFoundError";
    readonly code: "MOVEMENT_NOT_FOUND";
    constructor(tenantId: string, holderRef: string);
}
declare class InventoryTransactionRequiredError extends Error {
    readonly name = "InventoryTransactionRequiredError";
    readonly code: "INVENTORY_TRANSACTION_REQUIRED";
    constructor();
}
declare function isOversoldError(e: unknown): e is OversoldError;
declare function isInventoryValidationError(e: unknown): e is InventoryValidationError;
declare function isItemNotFoundError(e: unknown): e is ItemNotFoundError;
declare function isLocationNotFoundError(e: unknown): e is LocationNotFoundError;
declare function isMovementNotFoundError(e: unknown): e is MovementNotFoundError;
declare function isInventoryTransactionRequiredError(e: unknown): e is InventoryTransactionRequiredError;

interface CostLayer {
    readonly id: string;
    readonly quantityRemaining: number;
    readonly unitCost: number;
}
interface ConsumeFifoResult {
    readonly cogs: number;
    readonly updatedLayers: CostLayer[];
}
declare function consumeFifo(layers: readonly CostLayer[], qty: number): ConsumeFifoResult;

interface AvgValuation {
    /** Current stock quantity. Must be a non-negative integer. */
    readonly quantity: number;
    /** Weighted-average unit cost for current stock. */
    readonly averageCost: number;
}
interface Receipt {
    /** Quantity arriving in the receipt. Must be a non-negative integer. */
    readonly quantity: number;
    /** Unit cost for this receipt. Must be a finite, non-negative number. */
    readonly unitCost: number;
}
interface ConsumeResult extends AvgValuation {
    /** Number of units consumed from the valuation layer. */
    readonly consumedQuantity: number;
    /** Total cost of the consumed units at the current average. */
    readonly consumedValue: number;
}
declare function blendReceipt(state: AvgValuation, receipt: Receipt): AvgValuation;
declare function consumeAvg(state: AvgValuation, consumeQuantity: number): ConsumeResult;

export { type CogsResult, type CountResult, InventoryMigrateError, type InventorySchema, InventoryTransactionRequiredError, InventoryValidationError, ItemNotFoundError, LocationNotFoundError, type Movement, MovementNotFoundError, type MovementResult, type OnHand, OversoldError, type TransferResult, type Valuation, blendReceipt, consumeAvg, consumeFifo, getCogs, getMovements, getOnHand, getValuation, inventorySchema, isInventoryMigrateError, isInventoryTransactionRequiredError, isInventoryValidationError, isItemNotFoundError, isLocationNotFoundError, isMovementNotFoundError, isOversoldError, postAdjustment, postIssue, postReceipt, pushSchema, recordCount, reverseMovement, stockCostLayer, stockItem, stockLocation, stockMovement, stockPosition, transferStock };
