import { UserInfo } from '@memberjunction/core';
import { MJConversationEntity } from '@memberjunction/core-entities';
import { PSResourceBase } from './ps-resource-base';
import { PSPanelKey } from '../predictive-studio.types';
import { PSSection } from '../predictive-studio.nav';
import * as i0 from "@angular/core";
/**
 * **Studio** — the analyst workbench door (one of Predictive Studio's three consolidated nav items,
 * alongside `Predictions` and `Models`). Hosts the build/run section panels (`ps-home`, `ps-pipelines`,
 * `ps-catalog`, `ps-experiments`, `ps-compare`) behind an internal left-nav grouped by lifecycle
 * (Overview · Build · Run), so the outer app nav stays quiet while analysts get all the depth one click
 * in. The active section round-trips through the `section` query param (deep links + back/forward). A
 * single docked **Model Development Agent** copilot is shared by every section's "Ask the agent" CTA —
 * wired with the full conversation lifecycle (`isNewConversation` → `conversationCreated`) so the first
 * message actually creates + sends. Cross-door navigation (to a Models section) routes via the nav
 * service; see {@link routeHomeNavigate}.
 */
export declare class PSStudioResourceComponent extends PSResourceBase {
    protected readonly SectionKey = "studio";
    protected readonly SectionLabel = "Studio";
    protected readonly SectionIcon = "fa-solid fa-flask-vial";
    private readonly cdrLocal;
    /** The active workbench section (which panel renders). Round-trips through the `section` query param. */
    activeSection: PSPanelKey;
    readonly sections: readonly PSSection[];
    chatOpen: boolean;
    pendingPrompt: string | null;
    private _modelDevAgentId;
    /** Conversation lifecycle (see {@link onChatConversationCreated}) — without it the first send no-ops. */
    chatConversation: MJConversationEntity | null;
    chatConversationId: string | null;
    chatIsNewConversation: boolean;
    ngOnInit(): void;
    /** React to deep-link / back-forward `section` changes after the initial mount. */
    protected OnQueryParamsChanged(params: Record<string, string>, _source: 'popstate' | 'deeplink'): void;
    protected extraAgentContext(): Record<string, unknown>;
    get groups(): string[];
    itemsForGroup(group: string): PSSection[];
    get activeLabel(): string;
    get activeIcon(): string;
    selectSection(key: PSPanelKey): void;
    /** The Overview panel's in-app navigation: switch section in-place, or cross to the Models door. */
    mapNavigate(key: PSPanelKey): void;
    get currentUser(): UserInfo | null;
    get chatEnvironmentId(): string;
    get applicationId(): string | null;
    get modelDevAgentId(): string | null;
    get chatAppContext(): Record<string, unknown>;
    onAskAgent(starterPrompt: string): void;
    closeChat(): void;
    /** Chat-area created its backing conversation on the first send — capture it + leave new-mode so the thread renders. */
    onChatConversationCreated(event: {
        conversation: MJConversationEntity;
        pendingMessage?: string;
    }): void;
    /** Chat-area delivered the seeded prompt — clear the buffer so a re-render doesn't resend it. */
    onChatPendingMessageConsumed(): void;
    private ensureModelDevAgentResolved;
    static ɵfac: i0.ɵɵFactoryDeclaration<PSStudioResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PSStudioResourceComponent, "mj-ps-studio-resource", never, {}, {}, never, never, false, never>;
}
/** Tree-shaking prevention — called from the subpath module so the @RegisterClass survives bundling. */
export declare function LoadPSStudioResource(): void;
//# sourceMappingURL=ps-studio-resource.component.d.ts.map