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 getCommunicationPreferencesSchema(mysqlTable: MySqlTableFn): drizzle_orm_mysql_core.MySqlTableWithColumns<{
    name: "CommunicationPreference";
    schema: undefined;
    columns: {
        id: drizzle_orm_mysql_core.MySqlColumn<{
            name: "id";
            tableName: "CommunicationPreference";
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            generated: undefined;
        }, object>;
        organizationId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "organizationId";
            tableName: "CommunicationPreference";
            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>;
        userId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "userId";
            tableName: "CommunicationPreference";
            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>;
        organizationMembershipId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "organizationMembershipId";
            tableName: "CommunicationPreference";
            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>;
        channelId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "channelId";
            tableName: "CommunicationPreference";
            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>;
        preferenceLevel: drizzle_orm_mysql_core.MySqlColumn<{
            name: "preferenceLevel";
            tableName: "CommunicationPreference";
            dataType: "string";
            columnType: "MySqlEnumColumn";
            data: "low" | "medium" | "high";
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: ["low", "medium", "high"];
            baseColumn: never;
            generated: undefined;
        }, object>;
        preferenceTypeId: drizzle_orm_mysql_core.MySqlColumn<{
            name: "preferenceTypeId";
            tableName: "CommunicationPreference";
            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>;
        active: drizzle_orm_mysql_core.MySqlColumn<{
            name: "active";
            tableName: "CommunicationPreference";
            dataType: "boolean";
            columnType: "MySqlBoolean";
            data: boolean;
            driverParam: number | boolean;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        createdAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "createdAt";
            tableName: "CommunicationPreference";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        optInAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "optInAt";
            tableName: "CommunicationPreference";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        optOutAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "optOutAt";
            tableName: "CommunicationPreference";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        updatedAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "updatedAt";
            tableName: "CommunicationPreference";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
        deletedAt: drizzle_orm_mysql_core.MySqlColumn<{
            name: "deletedAt";
            tableName: "CommunicationPreference";
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            generated: undefined;
        }, object>;
    };
    dialect: "mysql";
}>;
declare function getCommunicationPreferencesRelationsSchema(mysqlTable: MySqlTableFn): drizzle_orm.Relations<"CommunicationPreference", {
    user: drizzle_orm.One<"User", true>;
    organizationMembership: drizzle_orm.One<"OrganizationMembership", false>;
    channel: drizzle_orm.One<"CommunicationChannel", true>;
    preferenceType: drizzle_orm.One<"CommunicationPreferenceType", true>;
}>;

export { getCommunicationPreferencesRelationsSchema, getCommunicationPreferencesSchema };
