import { AIGenerationEnvelope, EnterpriseDialogEntrypoint } 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: "navbar:projects-button_clicked";
} | {
    type: "billing:upgrade-button_clicked";
} | {
    type: "floating-help-button:help-center-button_clicked";
}
/**
 * Projects
 */
 | {
    type: "project-modal:create-new-project_clicked";
} | {
    type: "project-modal:duplicate-project_clicked";
} | {
    type: "project-modal:delete-project_clicked";
} | {
    type: "free-plan-limit-modal:screen_seen";
    resource: "page" | "project" | "member";
} | {
    type: "free-plan-limit-modal:upgrade-button_clicked";
} | {
    type: "enterprise-upsell-dialog:screen_seen";
    entrypoint: EnterpriseDialogEntrypoint;
} | {
    type: "enterprise-upsell:interested";
    entrypoint: EnterpriseDialogEntrypoint;
}
/**
 * Onboarding
 */
 | {
    type: "onboarding-modal:survey_submitted";
    roleEngineering: boolean;
    roleDesign: boolean;
    roleProduct: boolean;
    roleOther: boolean;
    buildingForMyself: boolean;
    buildingForClients: boolean;
    buildingForCompany: boolean;
}
/**
 * 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:new-page-button_clicked";
} | {
    type: "pages:pages-remaining-popover-upgrade-to-pro-button_clicked";
} | {
    type: "pages:empty-state-blank-page-option_clicked";
} | {
    type: "pages:empty-state-ai-option_clicked";
} | {
    type: "pages:empty-state-browse-templates-option_clicked";
} | {
    type: "pages:new-flow-button_clicked";
} | {
    type: "pages:flow-actions-preview-item_clicked";
} | {
    type: "pages:flow-actions-new-page-item_clicked";
} | {
    type: "pages:flow-actions-rename-item_clicked";
} | {
    type: "pages:flow-actions-delete-item_clicked";
} | {
    type: "pages:flow-new-page-button_clicked";
} | {
    type: "pages:flow-dnd_page-reordered";
    sourceFlowId: string;
    destinationFlowId: string;
} | {
    type: "pages:flow-dnd_flow-reordered";
} | {
    type: "pages:start-from-blank-button_clicked";
} | {
    type: "pages:start-from-template-button_clicked";
} | {
    type: "pages:start-from-ai-button_clicked";
} | {
    type: "pages:empty-state-template_clicked";
    templateComponentId: string;
    templateName: string;
}
/**
 * New Page Modal
 */
 | {
    type: "new-page-modal:screen_seen";
} | {
    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";
} | {
    type: "templates:table-of-contents-link_clicked";
    label: string;
}
/**
 * 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;
}
/**
 * CMD+K
 */
 | {
    type: "general:cmd-k_seen";
    location: "global" | "editor" | "node";
    trigger: "context-menu" | "keyboard-shortcut";
} | {
    type: "general:cmd-k_searched";
    location: "global" | "editor" | "node";
    searchQuery: string;
    trigger: "context-menu" | "keyboard-shortcut";
} | {
    type: "general:cmd-k_action-selected";
    location: "global" | "editor" | "node";
    kind: "command" | "multistep";
    actionType?: string;
    name: string;
    trigger: "context-menu" | "keyboard-shortcut";
}
/**
 * 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: string;
} | {
    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:share-button-switch_toggled";
    permission: "public" | "none";
} | {
    type: "editor:component-drawer_element-added";
    actionType: "snippet";
    snippetId: string;
} | {
    type: "editor:component-drawer_element-added";
    actionType: "element";
    nodeType: string;
} | {
    type: "editor:component-drawer_element-added";
    actionType: "component";
} | {
    type: "editor:component-drawer_component-searched";
    searchQuery: string;
    searchType: "snippet" | "component";
} | {
    type: "editor:pages-panel_seen";
} | {
    type: "editor:pages-panel-component_searched";
    searchQuery: string;
} | {
    type: "editor:pages-panel-page_clicked";
} | {
    type: "editor:pages-panel-page_reordered";
} | {
    type: "editor:pages-panel-page_duplicated";
} | {
    type: "editor:pages-panel-page_deleted";
} | {
    type: "editor:pages-panel-preview-button_clicked";
} | {
    type: "editor:pages-panel-new-page-button_clicked";
} | {
    type: "editor:pages-panel-new-flow-button_clicked";
} | {
    type: "editor:flow-actions-preview-item_clicked";
} | {
    type: "editor:flow-actions-new-page-item_clicked";
} | {
    type: "editor:flow-actions-rename-item_clicked";
} | {
    type: "editor:flow-actions-delete-item_clicked";
} | {
    type: "editor:flow-new-page-button_clicked";
} | {
    type: "editor:flow-dnd_page-reordered";
    sourceFlowId: string;
    destinationFlowId: string;
} | {
    type: "editor:flow-dnd_flow-reordered";
} | {
    type: "editor:pages-panel-page_reordered";
} | {
    type: "editor:code-inspector_seen";
}
/**
 * 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;
} | {
    type: "viewer:preview-navigation-button_clicked";
}
/**
 * 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";
}
/**
 * Icons
 */
 | {
    type: "icons:icon-searched";
    searchQuery: string;
} | {
    type: "icons:icon-import-copied";
    iconName: string;
} | {
    type: "icons:icon-code-copied";
    iconName: string;
}
/**
 * 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";
} | {
    type: "settings:invitation_accepted";
    userId: string;
    teamId: number;
    newTeamId: number;
    projectIdsUpdated: string;
} | {
    type: "settings:invitation_declined";
    userId: string;
    teamId: number;
    newTeamId: number;
}
/**
 * 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:replace-content_requested";
    instructions: string;
    companyContext: string;
} | ({
    type: "ai:generated-page_saved";
} & AIGenerationEnvelope) | ({
    type: "ai:generated-page_clicked";
} & 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;
}
/**
 * @deprecated
 * All deprecated events, here for posterity
 */
 | {
    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;
};
export interface Logger {
    init(): void;
    identifyUser: (userId: string, email?: string, additionalData?: object) => void;
    trackEvent(event: TrackEventType): void;
    trackEventAndFlush?: (event: TrackEventType) => Promise<void>;
    trackWarning: (event: string, additionalData?: {
        [key: string]: string | number | boolean;
    }) => void;
    trackWarningAndFlush?: (event: string, additionalData?: {
        [key: string]: string | number | boolean;
    }) => Promise<void>;
    trackPageView: () => void;
    logException: (error: Error, additionalData?: {
        [key: string]: string | number | boolean;
    }) => void;
    logExceptionAndFlush?: (error: Error, additionalData?: {
        [key: string]: string | number | boolean;
    }) => 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