import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
import { g as TeamParentTable } from './access-BZ81Btt5.js';

interface CreateWorkspaceInvitationTableOptions {
    /** The product's user table — `invitedByUserId` references `userTable.id`. */
    userTable: TeamParentTable;
    /** The product's workspace table — `workspaceId` references `workspaceTable.id`. */
    workspaceTable: TeamParentTable;
    /** The `organizations` table from `createTeamTables` — `organizationId` references it. */
    organizationTable: TeamParentTable;
}
declare function createWorkspaceInvitationTable(opts: CreateWorkspaceInvitationTableOptions): {
    workspaceInvitations: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
        name: "workspace_invitation";
        schema: undefined;
        columns: {
            id: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "id";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            workspaceId: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "workspace_id";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            organizationId: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "organization_id";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            email: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "email";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            invitedByUserId: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "invited_by_user_id";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            permissions: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "permissions";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: "viewer" | "editor" | "admin";
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: ["admin", "editor", "viewer"];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            token: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "token";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            status: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "status";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: "expired" | "pending" | "accepted" | "revoked";
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: ["pending", "accepted", "expired", "revoked"];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            emailStatus: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "email_status";
                tableName: "workspace_invitation";
                dataType: "string";
                columnType: "SQLiteText";
                data: "not_sent" | "sent" | "failed";
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: ["not_sent", "sent", "failed"];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                length: number | undefined;
            }>;
            expiresAt: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "expires_at";
                tableName: "workspace_invitation";
                dataType: "date";
                columnType: "SQLiteTimestamp";
                data: Date;
                driverParam: number;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "created_at";
                tableName: "workspace_invitation";
                dataType: "date";
                columnType: "SQLiteTimestamp";
                data: Date;
                driverParam: number;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            acceptedAt: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "accepted_at";
                tableName: "workspace_invitation";
                dataType: "date";
                columnType: "SQLiteTimestamp";
                data: Date;
                driverParam: number;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            revokedAt: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "revoked_at";
                tableName: "workspace_invitation";
                dataType: "date";
                columnType: "SQLiteTimestamp";
                data: Date;
                driverParam: number;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            lastSentAt: drizzle_orm_sqlite_core.SQLiteColumn<{
                name: "last_sent_at";
                tableName: "workspace_invitation";
                dataType: "date";
                columnType: "SQLiteTimestamp";
                data: Date;
                driverParam: number;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "sqlite";
    }>;
};
type WorkspaceInvitationTables = ReturnType<typeof createWorkspaceInvitationTable>;
type WorkspaceInvitationRow = WorkspaceInvitationTables['workspaceInvitations']['$inferSelect'];

export { type CreateWorkspaceInvitationTableOptions as C, type WorkspaceInvitationRow as W, type WorkspaceInvitationTables as a, createWorkspaceInvitationTable as c };
