import { SmrtObjectOptions, SmrtObject } from '@happyvertical/smrt-core'; import { ContentContributionChannel, ContentContributionIntakeRules, ContentContributionPromotionMapping, ContentContributionTypeDefinition } from './content-contribution-config'; export interface ContentContributionTypeOptions extends SmrtObjectOptions { key?: string; label?: string; enabled?: boolean; allowedChannels?: ContentContributionChannel[] | string; allowText?: boolean; allowFiles?: boolean; allowEmptyText?: boolean; intakeRules?: ContentContributionIntakeRules | string; promotion?: ContentContributionPromotionMapping | string; metadata?: Record | string; tenantId?: string | null; createdAt?: Date; updatedAt?: Date; } export declare class ContentContributionType extends SmrtObject { key: string; label: string; enabled: boolean; allowedChannels: string; allowText: boolean; allowFiles: boolean; allowEmptyText: boolean; intakeRules: string; promotion: string; metadata: string; tenantId: string | null; createdAt: Date; updatedAt: Date; constructor(options?: ContentContributionTypeOptions); getAllowedChannels(): ContentContributionChannel[]; setAllowedChannels(channels: ContentContributionChannel[]): void; getIntakeRules(): ContentContributionIntakeRules; setIntakeRules(rules: ContentContributionIntakeRules): void; getPromotion(): ContentContributionPromotionMapping; setPromotion(promotion: ContentContributionPromotionMapping): void; getMetadata(): Record; setMetadata(metadata: Record): void; toDefinition(): ContentContributionTypeDefinition; protected transformJSON(json: Record): { allowedChannels: ContentContributionChannel[]; intakeRules: ContentContributionIntakeRules; promotion: ContentContributionPromotionMapping; metadata: Record; }; protected validateBeforeSave(): Promise; delete(): Promise; } //# sourceMappingURL=content-contribution-type.d.ts.map