import { Currency, FieldType, MultiLanguageString } from '@/types'; export interface PageField { type: PageFieldType; name?: string | MultiLanguageString; mandatory: boolean; defaultValue?: string; } export interface PageSubscriptionConfig { subscriptionState: boolean; subscriptionInterval?: string; subscriptionPeriod?: string; subscriptionPeriodMinAmount?: string; subscriptionCancellationInterval?: string; } export interface PageRequest { id?: number; title: string; description: string; psp: number[]; name?: string; purpose?: string; amount?: number; currency?: Currency; subscriptionState?: boolean; subscriptionInterval?: string; subscriptionPeriod?: string; subscriptionPeriodMinAmount?: string; subscriptionCancellationInterval?: string; preAuthorization?: boolean; reservation?: boolean; fields?: Record; offset?: number; limit?: number; } export interface PageResponse extends PageRequest { id: number; createdAt: number; } export interface PageListResponse { data: PageResponse[]; count: number; offset?: number; limit?: number; } export interface PageCreateOptions { title: string; description: string; psp: number | number[]; amount?: number; currency?: Currency; subscriptionConfig?: PageSubscriptionConfig; fields?: Record; } export interface PageUpdateOptions { title?: string; description?: string; psp?: number | number[]; amount?: number; currency?: Currency; purpose?: string; name?: string; subscriptionConfig?: Partial; preAuthorization?: boolean; reservation?: boolean; } export type PageStatus = 'active' | 'inactive' | 'archived'; export interface PageSearchFilters { title?: string; description?: string; currency?: Currency; amountFrom?: number; amountTo?: number; status?: PageStatus; createdAfter?: string; createdBefore?: string; hasSubscription?: boolean; pspId?: number; } export interface PageAnalytics { pageId: number; views: number; conversions: number; conversionRate: number; totalAmount: number; currency: Currency; periodStart: string; periodEnd: string; } export interface PagePreview { url: string; qrCode?: string; embedCode?: string; iframeUrl?: string; } export interface PageValidationResult { isValid: boolean; errors: string[]; warnings: string[]; } export type PageFieldType = FieldType | 'payment_amount' | 'payment_purpose' | 'subscription_terms' | 'marketing_consent' | 'payment_method_preference'; export interface PageFieldConfig { type: PageFieldType; label?: string | MultiLanguageString; placeholder?: string | MultiLanguageString; helpText?: string | MultiLanguageString; validation?: { required?: boolean; minLength?: number; maxLength?: number; pattern?: string; customValidator?: string; }; options?: Array<{ value: string; label: string | MultiLanguageString; }>; conditional?: { showWhen: string; equals: string; }; } export interface PageThemeConfig { primaryColor?: string; secondaryColor?: string; backgroundColor?: string; textColor?: string; buttonStyle?: 'rounded' | 'square' | 'pill'; fontFamily?: string; customCSS?: string; } export interface PageSeoConfig { metaTitle?: string; metaDescription?: string; metaKeywords?: string; ogTitle?: string; ogDescription?: string; ogImage?: string; canonicalUrl?: string; } export interface PageSecurityConfig { captchaEnabled?: boolean; honeypotEnabled?: boolean; ipWhitelist?: string[]; ipBlacklist?: string[]; maxAttemptsPerIp?: number; cooldownPeriod?: number; } export interface PageNotificationConfig { emailNotifications?: boolean; smsNotifications?: boolean; webhookUrl?: string; slackWebhook?: string; customNotificationEndpoint?: string; } export interface PageIntegrationConfig { googleAnalytics?: string; facebookPixel?: string; googleTagManager?: string; customScripts?: string[]; } export interface AdvancedPageRequest extends PageRequest { theme?: PageThemeConfig; seo?: PageSeoConfig; security?: PageSecurityConfig; notifications?: PageNotificationConfig; integrations?: PageIntegrationConfig; customFields?: Record; } //# sourceMappingURL=page.d.ts.map