export { A as ApiData } from './ApiData-DPKNfY-9.js';
export { A as ApiDataInterface, J as JsonApiHydratedDataInterface } from './ApiDataInterface-DPP8s46n.js';
export { A as ApiRequestDataTypeInterface, F as FieldSelector, G as GetterKeys, c as createJsonApiInclusion } from './ApiRequestDataTypeInterface-CUKFDBx2.js';
export { A as ApiResponseInterface } from './ApiResponseInterface-CAIAeP5d.js';
export { AbstractApiData, AppModuleDefinitions, Auth, AuthModule, AuthorModule, Billing, BillingModule, BillingService, BlockDiffOptions, BlockNoteDiffUtil, BlockNoteWordDiffRendererUtil, ClientAbstractService, ClientHttpMethod, ClientNextRef, ClientPreviousRef, ClientSelfRef, ClientTotalRef, Company, CompanyFields, CompanyModule, Content, ContentModule, DataClass, DataClass as DataClassRegistry, DiffBlock, DiffResult, EndpointCreator, EndpointQuery, EntityObject, Feature, FeatureModule, FormatOption, FoundationModuleDefinitions, InviteValidation, JsonApiDataFactory, Module, ModuleDefinitions, ModuleModule, ModuleRegistrar, ModuleRegistry, Modules, Notification, NotificationFields, NotificationModule, OAuthClient, OAuthModule, OAuthService, PaymentMethod, Push, PushInput, PushInterface, PushModule, RehydrationFactory, Role, RoleModule, S3, S3Module, SearchResultInterface, StripeCustomer, StripeCustomerModule, StripeCustomerService, StripeInvoice, StripeInvoiceModule, StripeInvoiceService, StripePaymentMethodModule, StripePrice, StripePriceModule, StripePriceService, StripeProduct, StripeProductModule, StripeProductService, StripePromotionCode, StripePromotionCodeModule, StripePromotionCodeService, StripeSubscription, StripeSubscriptionModule, StripeSubscriptionService, StripeUsage, StripeUsageModule, StripeUsageService, TableOptions, ToastOptions, User, UserModule, UserObject, Waitlist, WaitlistInput, WaitlistInterface, WaitlistModule, WaitlistService, WaitlistStats, WaitlistStatsInterface, WaitlistStatsModule, WaitlistStatus, WordDiff, checkPermissions, checkPermissionsFromServer, cn, composeRefs, dismissToast, entityObjectSchema, exists, formatDate, getBootstrapper, getClientGlobalErrorHandler, getIcon, getIconByModule, getIconByModuleName, getLucideIcon, getLucideIconByModule, getLucideIconByModuleName, getTableComponents, getTableOptions, getValueFromPath, hasBootstrapper, rehydrate, rehydrateList, resetBootstrapStore, setBootstrapper, setClientGlobalErrorHandler, showCustomToast, showError, showToast, translateData, translateResponse, tryBootstrap, useComposedRefs, useIsMobile, userObjectSchema } from './core/index.js';
export { A as AbstractService, b as AuthInput, e as AuthInterface, d as AuthQuery, f as AuthService, C as CompanyService, h as ContentService, F as FeatureService, H as HttpMethod, N as NextRef, i as NotificationService, P as PreviousRef, j as PushService, R as RoleService, k as S3Input, l as S3Interface, m as S3Service, S as SelfRef, T as TotalRef, U as UserService, c as clearLastApiTotal, a as getGlobalErrorHandler, g as getLastApiTotal, s as setGlobalErrorHandler } from './s3.service-Mxo-7wQ6.js';
export { B as BreadcrumbItemData } from './breadcrumb.item.data.interface-CgB4_1EE.js';
export { C as ContentFields, D as D3Link, a as D3Node, R as RoleFields, U as UserFields } from './content.fields-Ck5lkQ5d.js';
export { ClassValue } from 'clsx';
export { A as Action, C as CompanyInput, h as CompanyInterface, c as ModuleDefinition, g as ModuleFactory, b as ModulePermissionDefinition, M as ModuleWithPermissions, i as NotificationInput, N as NotificationInterface, a as PageUrl, P as PermissionCheck, d as PermissionConfig, e as PermissionModule, f as PermissionUser, R as RoleInput, j as RoleInterface, k as UserInput, U as UserInterface } from './notification.interface-XARGKJAq.js';
export { A as AuthComponent } from './AuthComponent-hxOPs9o8.js';
export { I as InvoiceStatus, M as MeterInterface, o as MeterSummaryInterface, P as PaymentMethodInterface, e as PriceRecurring, q as PromotionCodeValidationResult, c as ProrationLineItem, b as ProrationPreviewInterface, R as ReportUsageInput, S as StripeCustomerInterface, a as StripeInvoiceInterface, f as StripePriceInput, d as StripePriceInterface, h as StripeProductInput, g as StripeProductInterface, l as StripeSubscriptionCreateMeta, m as StripeSubscriptionCreateResponse, k as StripeSubscriptionInput, j as StripeSubscriptionInterface, n as StripeUsageInterface, i as SubscriptionStatus, p as UsageRecordInterface, U as UsageSummaryInterface } from './stripe-promotion-code.interface-BcJty0rv.js';
export { C as ContentInput, a as ContentInterface } from './content.interface-CgUu4771.js';
export { F as FeatureInterface, M as ModuleInterface } from './feature.interface-CIWxo8NP.js';
export { A as AVAILABLE_OAUTH_SCOPES, D as DEFAULT_GRANT_TYPES, g as OAUTH_SCOPE_DISPLAY, b as OAuthClientCreateRequest, c as OAuthClientCreateResponse, a as OAuthClientInput, O as OAuthClientInterface, f as OAuthConsentInfo, d as OAuthConsentRequest, e as OAuthScopeInfo } from './oauth.interface-vL7za9Bz.js';
export { I as I18nConfig, e as configureI18n, c as configureJsonApi, g as getApiUrl, a as getAppUrl, d as getStripePublishableKey, b as getTrackablePages } from './config-BbaBV_yk.js';
export { Q as QuestionnaireField, a as QuestionnaireFieldType, b as QuestionnaireOption, W as WaitlistConfig, c as configureWaitlist, g as getWaitlistConfig } from './waitlist.config-kPfjImle.js';
import 'react';
import 'zod';
import '@blocknote/core';
import 'lucide-react';
import 'sonner';
import 'd3';

type RegistrationMode = "open" | "closed" | "waitlist";
interface LoginConfig {
    discordClientId?: string;
    googleClientId?: string;
    useInternalAuth?: boolean;
    allowRegistration?: boolean;
    registrationMode?: RegistrationMode;
}
declare function configureLogin(params: LoginConfig): void;

/**
 * Role ID configuration interface
 * Apps provide their role IDs via configureRoles()
 */
interface RoleIdConfig {
    Administrator: string;
    CompanyAdministrator: string;
    [key: string]: string;
}
/**
 * Configure role IDs for the library
 * Call this at app startup to provide role ID constants
 *
 * @example
 * ```typescript
 * import { configureRoles } from "@carlonicora/nextjs-jsonapi";
 * import { RoleId } from "@phlow/shared";
 *
 * configureRoles(RoleId);
 * ```
 */
declare function configureRoles(roleId: RoleIdConfig): void;
/**
 * Get configured role IDs
 * @throws Error if roles not configured
 */
declare function getRoleId(): RoleIdConfig;
/**
 * Check if roles have been configured
 */
declare function isRolesConfigured(): boolean;

/**
 * Token parameters for authentication cookie management
 */
interface TokenParams {
    token?: string;
    refreshToken?: string;
    userId?: string;
    companyId?: string;
    roles?: string[];
    features?: string[];
    modules?: {
        id: string;
        permissions: {
            create: boolean | string;
            read: boolean | string;
            update: boolean | string;
            delete: boolean | string;
        };
    }[];
}
/**
 * Token handler interface for dependency injection
 * Apps must provide implementations of these functions via configureAuth()
 */
interface TokenHandler {
    updateToken: (params: TokenParams) => Promise<void>;
    removeToken: () => Promise<void>;
}
/**
 * Configure authentication token handling
 * Call this at app startup to provide Server Actions for cookie management
 *
 * @example
 * ```typescript
 * import { configureAuth } from "@carlonicora/nextjs-jsonapi/features";
 * import { updateToken, removeToken } from "@/features/auth/utils/AuthCookies";
 *
 * configureAuth({ updateToken, removeToken });
 * ```
 */
declare function configureAuth(handler: TokenHandler): void;
/**
 * Internal getter for AuthService to access the token handler
 * @internal
 */
declare function getTokenHandler(): TokenHandler | null;

export { type LoginConfig, type RoleIdConfig, type TokenHandler, type TokenParams, configureAuth, configureLogin, configureRoles, getRoleId, getTokenHandler, isRolesConfigured };
