export interface FigmaConfig {
    accessToken: string;
    projectPath: string;
    connectedAt: string;
    updatedAt: string;
    userName?: string;
    tokenType: 'pat' | 'oauth';
}
export interface FigmaFrame {
    nodeId: string;
    name: string;
    pageId: string;
    pageName: string;
    section: string;
}
export interface FigmaGeneratedSpec {
    section: string;
    specId: string;
    frameCount: number;
    nodeIds: string[];
    createdAt: string;
}
export interface FigmaSyncLog {
    id: string;
    fileKey: string;
    syncedAt: string;
    status: 'success' | 'failed';
    specsCreated: number;
    framesProcessed: number;
    error?: string;
}
export interface ConfigureFigmaInput {
    projectPath: string;
    accessToken: string;
}
export interface ListFigmaFramesInput {
    projectPath: string;
    figmaUrl: string;
}
export interface GenerateSpecsFromFigmaInput {
    projectPath: string;
    figmaUrl: string;
    groupBy?: 'prefix' | 'page';
    sectionFilter?: string;
}
export interface FigmaFlow {
    fromNodeId: string;
    fromFrameName: string;
    toNodeId: string;
    toFrameName: string;
    trigger: string;
    transitionType: string;
    pageId: string;
    pageName: string;
    section: string;
}
export interface FigmaToken {
    category: 'color' | 'typography' | 'spacing' | 'radius' | 'shadow' | 'other';
    name: string;
    value: string;
    rawValue: unknown;
}
export interface FigmaFrameSnapshot {
    nodeId: string;
    name: string;
    pageId: string;
    pageName: string;
    section: string;
}
export interface FigmaWebhookRegistration {
    webhookId: string;
    passcode: string;
    endpoint: string;
    registeredAt: string;
    lastTriggeredAt?: string;
}
export interface BreakpointGroup {
    section: string;
    frames: {
        mobile: FigmaFrame[];
        tablet: FigmaFrame[];
        desktop: FigmaFrame[];
        unknown: FigmaFrame[];
    };
    allNodeIds: string[];
}
export interface FigmaThumbnailResult {
    nodeId: string;
    url: string | null;
    error?: string;
}
export interface FigmaCodeConnectEntry {
    figmaNodeId: string;
    componentName: string;
    codeUrl: string;
    framework: string;
    syncedAt: string;
}
export interface FigmaFileEntry {
    fileKey: string;
    label: string;
    figmaUrl: string;
    addedAt: string;
}
export interface FigmaDriftEntry {
    specId: string;
    section: string;
    storedVersion: string | null;
    currentVersion: string;
    driftDetected: boolean;
}
export type DiffSeverity = 'critical' | 'warning' | 'info';
export interface VisualDiffEntry {
    element: string;
    figmaValue: string;
    implementedValue: string;
    delta: string;
    severity: DiffSeverity;
}
export interface VisualQAResult {
    specId: string;
    nodeId: string;
    figmaImageUrl: string;
    screenshotUrl: string;
    comparedAt: string;
    diffs: VisualDiffEntry[];
    criticalCount: number;
    warningCount: number;
    infoCount: number;
    passed: boolean;
}
export interface VisualQASummary {
    totalSpecs: number;
    specsValidated: number;
    specsWithCritical: number;
    specsNeverValidated: number;
    validatedAt: string;
}
export interface DesignContext {
    nodeId: string;
    frameName: string;
    section: string;
    description: string;
    componentHints: string[];
    layoutNotes: string[];
    colorTokens: string[];
    generatedAt: string;
}
export interface EnrichmentResult {
    specId: string;
    enriched: boolean;
    nodeIds: string[];
    contexts: DesignContext[];
    skippedReason?: string;
}
export interface E2ETestCase {
    id: string;
    description: string;
    fromFrame: string;
    toFrame: string;
    trigger: string;
    section: string;
    playwrightCode: string;
}
export interface E2ETestFile {
    filename: string;
    section: string;
    testCases: E2ETestCase[];
    fullContent: string;
}
export interface E2EGenerationResult {
    totalFlows: number;
    totalTestCases: number;
    files: E2ETestFile[];
    skippedFlows: number;
    outputDir: string;
}
export interface AnalyzeFigmaFlowsInput {
    projectPath: string;
    figmaUrl: string;
}
export interface ExtractFigmaDesignTokensInput {
    projectPath: string;
    figmaUrl: string;
}
export interface SyncFigmaChangesInput {
    projectPath: string;
    figmaUrl: string;
}
export interface ListFigmaResponsiveFramesInput {
    projectPath: string;
    figmaUrl: string;
}
export interface ConfigureFigmaWebhookInput {
    projectPath: string;
    teamId: string;
    callbackUrl: string;
}
export interface RemoveFigmaWebhookInput {
    projectPath: string;
    webhookId: string;
}
export interface SyncFigmaCodeConnectInput {
    projectPath: string;
    figmaUrl: string;
}
export interface AddFigmaFileInput {
    projectPath: string;
    figmaUrl: string;
    label: string;
}
export interface RemoveFigmaFileInput {
    projectPath: string;
    fileKey: string;
}
export interface CheckFigmaDesignDriftInput {
    projectPath: string;
    figmaUrl: string;
}
export interface FigmaVisualDiffReportInput {
    projectPath: string;
    figmaUrl: string;
    specId: string;
}
export interface GenerateFigmaE2ETestsInput {
    projectPath: string;
    figmaUrl: string;
    outputDir?: string;
    sectionFilter?: string;
}
export interface EnrichSpecsFromFigmaInput {
    projectPath: string;
    figmaUrl: string;
    specIds?: string[];
}
export interface GetFigmaContextForSpecInput {
    projectPath: string;
    specId: string;
}
export interface ImportFigmaProjectInput {
    projectPath: string;
    figmaUrl: string;
    teamId?: string;
    webhookCallbackUrl?: string;
}
export interface SyncFigmaTokensToCodeInput {
    projectPath: string;
    format: 'css' | 'ts' | 'json';
    outputPath: string;
    prefix?: string;
}
export interface ValidateTokenConsistencyInput {
    projectPath: string;
    format: 'css' | 'ts' | 'json';
    filePath: string;
}
//# sourceMappingURL=figma.d.ts.map