/**
 * Pattern Reference Types
 *
 * These types define the structure of pattern references stored in page blocks.
 * Pattern references are resolved at render time to support automatic propagation
 * of changes when patterns are edited.
 *
 * NOTE: The full Pattern entity (config, service, fields) is in core/entities/patterns.
 * This file provides minimal types for core components that only need reference handling.
 * For full Pattern types and service, import from '@nextsparkjs/core/entities/patterns'.
 */
import type { BlockInstance } from './blocks';
/**
 * Pattern status values
 */
export type PatternStatus = 'draft' | 'published';
/**
 * Pattern entity (minimal interface for core components)
 *
 * This is the minimal Pattern interface needed by core components.
 * The full Pattern type with all fields is defined in the theme entity.
 */
export interface Pattern {
    id: string;
    userId: string;
    teamId: string;
    title: string;
    slug: string;
    blocks: BlockInstance[];
    status: PatternStatus;
    description?: string;
    createdAt: string;
    updatedAt: string;
}
/**
 * Pattern reference stored in page/post blocks array
 *
 * This is NOT a real block - it's a reference that gets resolved at render time.
 * The pattern's actual blocks are fetched and expanded when rendering the page.
 *
 * @example
 * // In a page's blocks array:
 * [
 *   { id: 'block-1', blockSlug: 'hero', props: {...} },
 *   { type: 'pattern', ref: 'pattern-uuid', id: 'instance-1' }, // Pattern reference
 *   { id: 'block-2', blockSlug: 'cta', props: {...} }
 * ]
 */
export interface PatternReference {
    type: 'pattern';
    ref: string;
    id: string;
}
/**
 * Type guard to check if a block is a pattern reference
 *
 * @param block - Block or pattern reference to check
 * @returns True if block is a pattern reference
 *
 * @example
 * if (isPatternReference(block)) {
 *   // Handle pattern reference
 *   const pattern = await PatternsService.getById(block.ref, userId)
 * } else {
 *   // Handle regular block
 *   renderBlock(block)
 * }
 */
export declare function isPatternReference(block: unknown): block is PatternReference;
//# sourceMappingURL=pattern-reference.d.ts.map