import type { FeatureNodeData } from '../../common/feature-node/index.js';
import type { RepositoryNodeData } from '../../common/repository-node/index.js';
import type { ParentFeatureOption } from '../../common/feature-create-drawer/feature-create-drawer.js';
import type { WorkflowDefaults } from '../../../app/actions/get-workflow-defaults.js';
/** Tab key matching FeatureDrawerTabs */
export type FeatureTabKey = 'overview' | 'activity' | 'log' | 'plan' | 'prd-review' | 'tech-decisions' | 'product-decisions' | 'merge-review' | 'chat' | 'bedrock';
/** All valid tab key values — used for URL param validation. */
export declare const VALID_TAB_KEYS: ReadonlySet<string>;
/** Type-guard: returns the value as FeatureTabKey if valid, otherwise undefined. */
export declare function parseTabKey(value: string | null | undefined): FeatureTabKey | undefined;
/**
 * Discriminated union representing every possible drawer state in the control center.
 * Only one view can be active at a time.
 */
export type DrawerView = 
/** All feature views — tabs handle the lifecycle-specific content */
{
    type: 'feature';
    node: FeatureNodeData;
    initialTab: FeatureTabKey;
}
/** Feature creation form */
 | {
    type: 'feature-create';
    repositoryPath: string;
    initialParentId?: string;
    features: ParentFeatureOption[];
    workflowDefaults?: WorkflowDefaults;
}
/** Repository node actions */
 | {
    type: 'repository';
    data: RepositoryNodeData;
};
/** Derives the initial tab from node lifecycle + state. */
export declare function deriveInitialTab(node: FeatureNodeData): FeatureTabKey;
/**
 * Derives the active DrawerView from control-center state.
 * Priority: feature-create > selected-node > repository
 */
export declare function computeDrawerView({ selectedNode, isCreateDrawerOpen, pendingRepositoryPath, pendingParentFeatureId, selectedRepoNode, features, workflowDefaults, }: {
    selectedNode: FeatureNodeData | null;
    isCreateDrawerOpen: boolean;
    pendingRepositoryPath: string;
    pendingParentFeatureId: string | undefined;
    selectedRepoNode: RepositoryNodeData | null;
    features: ParentFeatureOption[];
    workflowDefaults: WorkflowDefaults | undefined;
}): DrawerView | null;
//# sourceMappingURL=drawer-view.d.ts.map