import { NodeType } from "../../../apps/web/src/data/types";
import { AIGenerationEnvelope } from "./types";
export type TrackEventType = 
/**
 * General
 */
{
    type: "navbar:sync-to-code-button_clicked";
} | {
    type: "navbar:help-center-button_clicked";
} | {
    type: "navbar:github-button_clicked";
} | {
    type: "navbar:slack-community-button_clicked";
} | {
    type: "navbar:invite-team-button_clicked";
} | {
    type: "navbar:billing-button_clicked";
} | {
    type: "billing:upgrade-button_clicked";
} | {
    type: "floating-help-button:help-center-button_clicked";
} | {
    type: "trial-over-modal:screen_seen";
} | {
    type: "trial-over-modal:extend-trial-button_clicked";
} | {
    type: "trial-over-modal:upgrade-button_clicked";
} | {
    type: "trial-over-modal:trial-extension-requested";
    extensionReasonType: string;
    extensionCustomReason?: string;
} | {
    type: "onboarding-modal:survey_submitted";
    roleEngineering: boolean;
    roleDesign: boolean;
    roleProduct: boolean;
    roleOther: boolean;
    buildingForMyself: boolean;
    buildingForClients: boolean;
    buildingForCompany: boolean;
    teamSize?: string;
    purposeCurious: boolean;
    purposeDesignSystem: boolean;
    purposeIterateDesigns: boolean;
    purposeSaveEngineeringTime: boolean;
    purposeOther: boolean;
    purposeOtherReason?: string;
}
/**
 * Library
 */
 | {
    type: "library:component_searched";
    searchQuery: string;
} | {
    type: "library:start-from-blank-button_clicked";
} | {
    type: "library:start-from-template-button_clicked";
}
/**
 * Pages
 */
 | {
    type: "pages:component_searched";
    searchQuery: string;
} | {
    type: "pages:empty-state-template_clicked";
    templateComponentId: string;
    templateName: string;
} | {
    type: "pages:new-page-button_clicked";
} | {
    type: "pages:start-from-blank-button_clicked";
} | {
    type: "pages:start-from-template-button_clicked";
} | {
    type: "pages:start-from-ai-button_clicked";
}
/**
 * New Page Modal
 */
 | {
    type: "new-page-modal:screen_seen";
} | {
    type: "new-page-modal:blank-page-option_clicked";
} | {
    type: "new-page-modal:blank-page-option_clicked";
} | {
    type: "new-page-modal:template-option_clicked";
    templateComponentId: string;
    templateName: string;
} | {
    type: "new-page-modal:ai-option_clicked";
} | {
    type: "new-page-modal:component_searched";
    searchQuery: string;
}
/**
 * Templates
 */
 | {
    type: "templates:component_searched";
    searchQuery: string;
    searchType: "component" | "page";
} | {
    type: "templates:start-from-scratch-button_clicked";
} | {
    type: "templates:use-this-template-button_clicked";
    templateComponentId: string;
    templateName: string;
} | {
    type: "templates:source-code_copied";
} | {
    type: "templates:component-details-page_add-to-library-button_clicked";
} | {
    type: "templates:component-tile_add-to-library-button_clicked";
}
/**
 * Component creation / deletion
 */
 | {
    type: "general:component_created";
    templateComponentId?: string;
    isDuplicated: boolean;
    isCompoundComponent: boolean;
    isCreatedViaEditor: boolean;
} | {
    type: "general:component_deleted";
    componentId: string;
} | {
    type: "general:page_created";
    templateComponentId?: string;
}
/**
 * Editor
 */
 | {
    type: "editor:page-layout-modal-option_clicked";
    option: "none" | "default-layout" | "dialog-layout" | "drawer-layout";
} | {
    type: "editor:find-usages-button_clicked";
} | {
    type: "editor:keyboard-shortcut_used";
    keystrokes: string;
} | {
    type: "editor:export-to-code-button_clicked";
    isPageComponent: boolean;
} | {
    type: "editor:preview-button_clicked";
    isPageComponent: boolean;
} | {
    type: "editor:export-to-code_copied";
    isPageComponent: boolean;
} | {
    type: "editor:managed-by-subframe-banner_duplicate-button_clicked";
} | {
    type: "editor:managed-by-subframe-modal_duplicate-button_clicked";
} | {
    type: "editor:edit-slot-contents-button_clicked";
} | {
    type: "editor:edit-slot-contents_double-clicked-to-edit";
} | {
    type: "editor:quick-styles-button_clicked";
    quickStyleType: "none" | "card" | "well";
} | {
    type: "editor:ai-ask-icon_suggestion";
    prompt: string;
} | {
    type: "editor:detach-button_clicked";
} | {
    type: "editor:edit-component-redux-action_dispatched";
    actionType: string;
} | {
    type: "editor:context-menu-detach-element-button_clicked";
} | {
    type: "editor:context-menu-edit-component-button_clicked";
} | {
    type: "editor:context-menu-create-component-button_clicked";
} | {
    type: "editor:context-menu-create-subcomponent-button_clicked";
} | {
    type: "editor:context-menu-add-slot-button_clicked";
} | {
    type: "editor:context-menu-remove-slot-button_clicked";
} | {
    type: "editor:context-menu-duplicate-button_clicked";
} | {
    type: "editor:context-menu-delete-button_clicked";
} | {
    type: "editor:context-menu-wrap-button_clicked";
} | {
    type: "editor:context-menu-unwrap-button_clicked";
} | {
    type: "editor:context-menu-copy-cell-to-rest-of-column-button_clicked";
} | {
    type: "editor:add-element-button_clicked";
    actionType: "component" | "duplicate";
    snippetId?: string;
} | {
    type: "editor:add-element-button_clicked";
    actionType: "element";
    nodeType: NodeType["type"];
} | {
    type: "editor:add-element-button_clicked";
    actionType: "snippet";
    snippetId: string;
} | {
    type: "editor:add-element-button_clicked";
    actionType: "table-snippet";
    snippetId: string;
} | {
    type: "editor:add-element-button_clicked";
    actionType: "popover";
    popoverType: string;
} | {
    type: "editor:component-drawer_element-added";
    actionType: "snippet";
    snippetId: string;
} | {
    type: "editor:component-drawer_element-added";
    actionType: "element";
    nodeType: NodeType["type"];
} | {
    type: "editor:component-drawer_element-added";
    actionType: "component";
} | {
    type: "editor:component-drawer_component-searched";
    searchQuery: string;
    searchType: "snippet" | "component";
}
/**
 * Viewer (e.g. source code, preview)
 */
 | {
    type: "viewer:refactor-with-ai-button_clicked";
    fileType: "css" | "tsx" | "ts" | "js";
    isPageComponent: boolean;
} | {
    type: "viewer:source-code_copied";
    fileType: "css" | "tsx" | "ts" | "js";
    isPageComponent: boolean;
} | {
    type: "viewer:component-default-example-code_copied";
} | {
    type: "viewer:component-import-usage-code_copied";
} | {
    type: "viewer:component-mdx-example-code_opened";
} | {
    type: "viewer:component-mdx-example-code_copied";
} | {
    type: "viewer:component-source-code_copied";
    isPageComponent: boolean;
} | {
    type: "viewer:tree-viewer_component-searched";
    searchQuery: string;
}
/**
 * Installation
 */
 | {
    type: "installation:font-head-tags_copied";
} | {
    type: "installation:cli-init-command_copied";
} | {
    type: "installation:cli-sync-command_copied";
} | {
    type: "installation:cli-sync-disable-comment_copied";
} | {
    type: "installation:nextjs-starter_cli_copied";
} | {
    type: "installation:vite-starter_cli_copied";
} | {
    type: "installation:welcome-page-code_copied";
} | {
    type: "installation:nextjs-starter_downloaded";
} | {
    type: "installation:vite-starter_downloaded";
}
/**
 * Themes
 */
 | {
    type: "theme-picker:theme_updated";
}
/**
 * Settings
 */
 | {
    type: "settings:invite-team-member";
    inviteeEmail: string;
} | {
    type: "settings:downgrade-team-member";
    email: string;
} | {
    type: "settings:upgrade-team-member";
    email: string;
} | {
    type: "settings:rejoin-team";
    email: string;
} | {
    type: "settings:upgrade-to-pro-button_clicked";
} | {
    type: "settings:contact-enterprise-button_clicked";
}
/**
 * AI
 */
 | {
    type: "ai:company-information-form_submitted";
} | {
    type: "ai:page-suggestion_clicked";
    suggestion: string;
    companyName: string;
    companyContext: string;
} | {
    type: "ai:page-generation_requested";
    useCase: string;
    companyName: string;
    companyContext: string;
} | ({
    type: "ai:generated-page_saved";
} & AIGenerationEnvelope) | ({
    type: "ai:generated-page-feedback_submitted";
    value: "upvote" | "downvote" | "none";
} & AIGenerationEnvelope)
/**
 * CLI
 */
 | {
    type: "cli:init-command-started";
} | {
    type: "cli:init-command-completed";
} | {
    type: "cli:sync-command-started";
    components: string;
} | {
    type: "cli:sync-command-completed";
    components: string;
};
export interface Logger {
    init(): void;
    identifyUser: (userId: string, email?: string, additionalData?: object) => void;
    trackEvent(event: TrackEventType): void;
    trackWarning: (event: string, additionalData?: {
        [key: string]: string | number | boolean;
    }) => void;
    trackPageView: () => void;
    logException: (error: Error, additionalData?: {
        [key: string]: string | number | boolean;
    }) => void;
    flushAndClose?: () => Promise<void>;
}
export declare const EXCEPTION_EVENT_NAME = "EXCEPTION_LOGGING";
export declare let logger: Logger;
export declare function initializeLogger(loggerSingleton: Logger): void;
//# sourceMappingURL=logger.d.ts.map