import { SidebarsManagerTypes } from './sidebars-manager.types';
export type ModelOrId = {
    id: string;
} | string;
export declare const constants: {
    idKeys: {
        account: "accountId";
        admin: "adminId";
        need: "needId";
        theme: "themeId";
        user: "userId";
        ticket: "ticketId";
        artifact: "artifactId";
        queuedAutomation: "queuedAutomationId";
        email: "emailId";
        topic: "topicId";
        eventLabel: "eventLabelId";
        signal: "signalId";
        dynamicScore: "dynamicScoreId";
        playbook: "playbookId";
        journey: "journeyId";
        milestone: "milestoneId";
        cvu: "cvuId";
        segment: "segmentId";
        post: "postId";
        drillDownReport: "reportId";
        filterAccountsSegmentId: "filterAccountsSegmentId";
        cvuCalculationTemplate: "cvuCalculationTemplateId";
        taskId: "taskId";
        widgetPost: "widgetPostId";
        votingPost: "votingPostId";
        meeting: "meetingId";
        call: "callId";
        ticketId: "ticketId";
        opportunityId: "opportunityId";
        surveyResponseId: "surveyResponseId";
        followUpQuestionId: "followUpQuestionId";
        desiredOutcomeId: "desiredOutcomeId";
        automationId: "automationId";
        desiredOutcomeTemplateId: "desiredOutcomeTemplateId";
        jobRunId: "jobRunId";
        threshold: "thresholdId";
        localShaply: "localShaplyId";
        globalShaply: "globalShaplyId";
        scoreCard: "scoreCardId";
        funnel: "funnelId";
        funnelStepId: "funnelStepId";
        surveyId: "surveyId";
    };
    sidebarType: string;
};
export type Id = (typeof constants.idKeys)[keyof typeof constants.idKeys];
export declare enum SIDEBAR_TYPES {
    ACCOUNT = "account",
    ADMIN = "admin",
    ARTIFACT = "artifact",
    CALL = "call",
    DRILL_DOWN_REPORT = "drillDownReport",
    DYNAMIC_SCORE = "dynamicScore",
    EVENT_LABEL = "event-label",
    FILTER_ACCOUNTS = "filter-accounts",
    FOLLOW_UP_QUESTION = "follow-up-question",
    FUNNEL = "funnel",
    FUNNEL_STEP = "funnelStep",
    GLOBAL_SHAPLY = "globalShaply",
    JOB_RUN = "job-run",
    JOURNEY = "journey",
    LOCAL_SHAPLY = "localShaply",
    MEETING = "meeting",
    NEED = "need",
    OPPORTUNITIES = "opportunities",
    OPPORTUNITY = "opportunity",
    PLAYBOOK = "playbook",
    POST = "post",
    PROPERTIES = "properties",
    PULLOUT = "pullout",
    SCORE_CARD = "score-card",
    SEGMENT = "segment",
    SIGNAL = "signal",
    SURVEY = "survey",
    SURVEY_RESPONSE = "survey-response",
    TASK = "task",
    THEME = "theme",
    THRESHOLD = "threshold",
    TICKET = "ticket",
    TICKET_PULLOUT = "ticket-pullout",
    TOPIC = "topic",
    USER = "user",
    VOTING_POST = "voting-post",
    WIDGET_POST = "widget-post"
}
export type Sidebar = Partial<Record<Id, string> & {
    isOpenOverModal?: boolean;
    isRoot?: boolean;
    options?: SidebarsManagerTypes.SidebarOptions.Base;
    pulloutId?: string;
    pulloutType?: SIDEBAR_TYPES;
    viewer?: SidebarViewer;
}>;
type Props = {
    accountId: string;
    adminId: string;
    artifactId: string;
    cvuCalculationTemplate: string;
    desiredOutcomeId: string;
    desiredOutcomeTemplateId: string;
    dynamicScoreId: string;
    emailId: string;
    eventLabelId: string;
    filterAccountsSegmentId: string;
    followUpQuestionId: string;
    needId: string;
    playbookId: string;
    postId: string;
    queuedAutomationId: string;
    reportId: string;
    scoreCardId: string;
    segmentId: string;
    sidebarType: SIDEBAR_TYPES;
    sidebars: Sidebar[];
    signalId: string;
    surveyId: string;
    surveyResponseId: string;
    themeId: string;
    ticketId: string;
    topicId?: string;
    userId: string;
    votingPostId: string;
    widgetPostId: string;
};
type IManager = {
    set: (payload: Partial<Props> | ((prevState: Partial<Props>) => Partial<Props>)) => void;
};
export declare enum SidebarViewer {
    Admin = "admin",
    User = "user"
}
/**
 * Will be initialized in app root level
 *
 * Example:
 *  ```tsx
 *  export const sidebarsManager = new SidebarsManager();
 *
 *  const ApplicationRoot = () => {
 *    useEffect(() => {
 *        sidebarsManager.setManager({
 *        set: setSearchQuery,
 *     });
 *    }, [])
 *
 *    return <Pages />
 *  }
 *  ```
 *
 */
export declare class SidebarsManager {
    private viewer;
    private manager;
    constructor(viewer?: SidebarViewer);
    setManager(manager: IManager): void;
    getMultipleId(props: Record<string, string>): string;
    parseId<T>(id: string): T;
    private getId;
    openNewSidebar: (sidebarType: Sidebar) => void;
    pushSidebar: (sidebarType: Sidebar) => void;
    popSidebar: () => void;
    openPulloutSidebar: (sidebarType: Pick<Sidebar, 'pulloutType' | 'pulloutId' | 'options'>) => void;
    openFilterAccountsSidebar: (filterAccountsSegmentId: string) => this;
    closePullout: () => void;
    closeSidebar: () => void;
    openNeedPulloutSidebar: (modelOrId: ModelOrId) => this;
    openTaskPulloutSidebar: (modelOrId: ModelOrId, options?: SidebarsManagerTypes.SidebarOptions.TaskOptions) => this;
    openArtifactPulloutSidebar: (modelOrId: ModelOrId) => this;
    openTopicSidebar: (modelOrId: ModelOrId) => this;
    openTaskSidebar: (modelOrId: ModelOrId, options?: SidebarsManagerTypes.SidebarOptions.TaskOptions) => this;
    pushTopicSidebar: (modelOrId: ModelOrId) => this;
    openThemeSidebar: (modelOrId: ModelOrId) => this;
    openAccountSidebar: (modelOrId: ModelOrId) => this;
    openJourneySidebar: (modelOrId: ModelOrId) => this;
    openMilestoneSidebar: (modelOrId: ModelOrId) => this;
    openUserSidebar: (modelOrId: ModelOrId) => this;
    openJobRunSidebar: (modelOrId: ModelOrId) => this;
    pushJobRunSidebar: (modelOrId: ModelOrId) => this;
    openMeetingSidebar: (modelOrId: ModelOrId) => this;
    pushMeetingSidebar: (modelOrId: ModelOrId) => this;
    openCallSidebar: (modelOrId: ModelOrId) => this;
    pushCallSidebar: (modelOrId: ModelOrId) => this;
    openScoreCardSidebar: (props: SidebarsManagerTypes.ScoreCardSidebarId) => this;
    openScoreCardPulloutSidebar: (props: SidebarsManagerTypes.ScoreCardSidebarId) => this;
    pushScoreCardSidebar: (props: SidebarsManagerTypes.ScoreCardSidebarId) => this;
    openQueuedAutomation: (modelOrId: ModelOrId) => this;
    openEmail: (modelOrId: ModelOrId) => this;
    openNeedSidebar: (modelOrId: ModelOrId) => this;
    pushNeedSidebar: (modelOrId: ModelOrId) => this;
    openArtifactSidebar: (modelOrId: ModelOrId) => this;
    pushArtifactSidebar: (modelOrId: ModelOrId) => this;
    openSurveyResponseSidebar: (modelOrId: ModelOrId) => this;
    pushSurveyResponseSidebar: (modelOrId: ModelOrId) => this;
    openFunnelSidebar: (modelOrId: ModelOrId) => this;
    openFunnelStepSidebar: (modelOrId: ModelOrId) => this;
    openFollowUpQuestionSidebar: (modelOrId: ModelOrId) => this;
    pushFollowUpQuestionSidebar: (modelOrId: ModelOrId) => this;
    openSurveySidebar: (modelOrId: ModelOrId) => this;
    pushSurveySidebar: (modelOrId: ModelOrId) => this;
    openSegmentSidebar: (modelOrId: ModelOrId) => this;
    pushSegmentSidebar: (modelOrId: ModelOrId) => this;
    openSignalSidebar: (modelOrId: ModelOrId) => this;
    openDrillDownSidebar: (modelOrId: ModelOrId) => this;
    pushDrillDownSidebar: (modelOrId: ModelOrId) => this;
    pushSignalSidebar: (modelOrId: ModelOrId) => this;
    openDynamicScoreSidebar: (modelOrId: ModelOrId) => this;
    openDesiredOutcomeSidebar: (modelOrId: ModelOrId) => this;
    pushDesiredOutcomeSidebar: (modelOrId: ModelOrId) => this;
    openDesiredOutcomeTemplateSidebar: (modelOrId: ModelOrId) => this;
    pushDesiredOutcomeTemplateSidebar: (modelOrId: ModelOrId) => this;
    openPlaybookSidebar: (modelOrId: ModelOrId) => this;
    openCvuSidebar: (modelOrId: ModelOrId) => this;
    openCvuCalculationTemplateSidebar: (modelOrId: ModelOrId) => this;
    openPostSidebar: (modelOrId: ModelOrId) => this;
    openWidgetPostSidebar: (modelOrId: ModelOrId) => this;
    openVotingPostSidebar: (modelOrId: ModelOrId) => this;
    openPostPulloutSidebar: (modelOrId: ModelOrId) => this;
    pushDynamicScoreSidebar: (modelOrId: ModelOrId) => this;
    pushAccountSidebar: (modelOrId: ModelOrId) => this;
    pushJourneySidebar: (modelOrId: ModelOrId) => this;
    pushMilestoneSidebar: (modelOrId: ModelOrId) => this;
    pushEventLabelSidebar: (modelOrId: ModelOrId) => this;
    pushUserSidebar: (modelOrId: ModelOrId) => this;
    openTicketSidebar: (modelOrId: ModelOrId) => this;
    openTicketPulloutSidebar: (modelOrId: ModelOrId) => this;
    pushTicketSidebar: (modelOrId: ModelOrId) => this;
    openOpportunitySidebar: (modelOrId: ModelOrId) => this;
    openAdminSidebar: (modelOrId: ModelOrId) => this;
    pushAdminSidebar: (modelOrId: ModelOrId) => this;
    openOpportunityPulloutSidebar: (modelOrId: ModelOrId) => this;
    pushOpportunitySidebar: (modelOrId: ModelOrId) => this;
    openAutomationSidebar: (modelOrId: ModelOrId) => this;
    pushAutomationSidebar: (modelOrId: ModelOrId, options: any) => this;
    openThresholdSidebar: (modelOrId: ModelOrId) => this;
    pushThresholdSidebar: (modelOrId: ModelOrId, options: any) => this;
    openGlobalShaplySidebar: (modelOrId: ModelOrId, options?: Sidebar) => this;
    pushGlobalShaplySidebar: (modelOrId: ModelOrId, options?: Sidebar) => this;
    openLocalShaplySidebar: (modelOrId: ModelOrId, options?: Sidebar) => this;
    pushLocalShaplySidebar: (modelOrId: ModelOrId, options?: Sidebar) => this;
    openLocalShaplyPulloutSidebar: (modelOrId: ModelOrId) => this;
}
export {};
