import * as drizzle_orm from 'drizzle-orm';
import * as drizzle_orm_mysql_core from 'drizzle-orm/mysql-core';
import { MySqlTableFn } from 'drizzle-orm/mysql-core';

declare function getPurchaseSchema(mysqlTable: MySqlTableFn): drizzle_orm_mysql_core.MySqlTableWithColumns<{
    name: "Purchase";
    schema: undefined;
    columns: {
        id: drizzle_orm_mysql_core.MySqlColumn<{
            name: "id";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        userId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "userId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        purchasedByorganizationMembershipId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "organizationMembershipId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        organizationId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "organizationId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        createdAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "createdAt";
            tableName: "Purchase";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        totalAmount: drizzle_orm_mysql_core.MySqlColumn<{
            name: "totalAmount";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlDecimal";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        ipAddress: drizzle_orm_mysql_core.MySqlColumn<{
            name: "ip_address";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        city: drizzle_orm_mysql_core.MySqlColumn<{
            name: "city";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        state: drizzle_orm_mysql_core.MySqlColumn<{
            name: "state";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        country: drizzle_orm_mysql_core.MySqlColumn<{
            name: "country";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        couponId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "couponId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        productId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "productId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        merchantChargeId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "merchantChargeId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        upgradedFromId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "upgradedFromId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        status: drizzle_orm_mysql_core.MySqlColumn<{
            name: "status";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        bulkCouponId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "bulkCouponId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        merchantSessionId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "merchantSessionId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        redeemedBulkCouponId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "redeemedBulkCouponId";
            tableName: "Purchase";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        fields: drizzle_orm_mysql_core.MySqlColumn<{
            name: "fields";
            tableName: "Purchase";
            dataType: "json";
            columnType: "MySqlJson";
            data: Record<string, any>;
            driverParam: string;
            notNull: false;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
    };
    dialect: "mysql";
}>;
declare function getPurchaseRelationsSchema(mysqlTable: MySqlTableFn): drizzle_orm.Relations<"Purchase", {
    redeemedBulkCoupon: drizzle_orm.One<"Coupon", false>;
    user: drizzle_orm.One<"User", false>;
    organization: drizzle_orm.One<"Organization", false>;
    purchasedBy: drizzle_orm.One<"OrganizationMembership", false>;
    product: drizzle_orm.One<"Product", true>;
    bulkCoupon: drizzle_orm.One<"Coupon", false>;
    merchantCharge: drizzle_orm.One<"MerchantCharge", false>;
    merchantSession: drizzle_orm.One<"MerchantSession", false>;
}>;

export { getPurchaseRelationsSchema, getPurchaseSchema };
