import { ConnectedOverlayPositionChange, ConnectedPosition } from '@angular/cdk/overlay';
import { TemplateRef } from '@angular/core';
import * as i0 from "@angular/core";
/** Animation states for the dropdown */
type DropdownAnimationState = 'closed' | 'opening' | 'open' | 'closing';
/** Dropdown X position options for CDK overlay positioning */
export type DropdownXPosition = 'start' | 'center' | 'end';
/** Dropdown Y position options for CDK overlay positioning */
export type DropdownYPosition = 'top' | 'bottom' | 'center';
/** Dropdown fallback position configuration */
export interface DropdownFallbackPositions {
/** Enable automatic fallback positions */
enabled: boolean;
/** Custom fallback positions - if not provided, default fallbacks will be used */
positions?: ConnectedPosition[];
}
/**
* DropdownTrigger - Trigger element for opening dropdown content
*
* @remarks
* This component acts as the trigger that opens/closes the dropdown content.
* It can contain any content (buttons, avatars, text, icons, etc.).
* Uses CdkConnectedOverlay for positioning and management.
*
* @example
* ```html
*
*
*
*
*
* Item 1
*
*
* ```
*/
export declare class DropdownTriggerComponent {
/** Offset X in pixels */
offsetX: import("@angular/core").InputSignal;
/** Offset Y in pixels */
offsetY: import("@angular/core").InputSignal;
/** Origin X position */
originX: import("@angular/core").InputSignal;
/** Origin Y position */
originY: import("@angular/core").InputSignal;
/** Overlay X position */
overlayX: import("@angular/core").InputSignal;
/** Overlay Y position */
overlayY: import("@angular/core").InputSignal;
/** Fallback positions configuration */
fallbacks: import("@angular/core").InputSignal;
/** Event emitted when dropdown is opened */
opened: import("@angular/core").OutputEmitterRef;
/** Event emitted when dropdown is closed */
closed: import("@angular/core").OutputEmitterRef;
/**
* Stop event propagation for activation events
* @defaultValue false
*/
stopPropagation: import("@angular/core").InputSignal;
/**
* Tab index for the trigger wrapper
* @defaultValue -1
*/
triggerTabIndex: import("@angular/core").InputSignal;
/**
* Event emitted on click
*/
clicked: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on pointer down
*/
pointerDown: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Enter keydown
*/
keyDownEnter: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on Space keydown
*/
keyDownSpace: import("@angular/core").OutputEmitterRef;
/**
* Event emitted on activation (click or keyboard)
*/
triggered: import("@angular/core").OutputEmitterRef;
/** Current open state */
isOpen: import("@angular/core").WritableSignal;
/** Internal state to control overlay visibility (keeps overlay open during close animation) */
overlayOpen: import("@angular/core").WritableSignal;
/** Current animation state */
animationState: import("@angular/core").WritableSignal;
/** Current active position configuration */
currentPosition: import("@angular/core").WritableSignal;
/**
* Computed animation direction based on current position
* Returns the appropriate direction: 'top', 'bottom', 'left', or 'right'
*/
animationDirection: import("@angular/core").Signal<"top" | "bottom" | "left" | "right">;
/**
* Static class mappings for different animation directions
* Maps animation directions to complete Tailwind class names
* All class names are static and detectable by Tailwind at build time
*/
private readonly animationClassMap;
/**
* Computed class string for animations
* Applies the correct animation based on position using static class names
*/
animationClasses: import("@angular/core").Signal;
/** Content template reference */
contentTemplate: TemplateRef | null;
/**
* Computed positions array based on signal inputs
*/
positions: import("@angular/core").Signal;
/**
* Generate default fallback positions based on the primary position
* Provides comprehensive fallback coverage for all space constraints
*/
private generateDefaultFallbacks;
/**
* Helper to flip Y position
*/
private getOppositeY;
/**
* Helper to flip X position
*/
private getOppositeX;
/**
* Helper to create position variant
*/
private createPosition;
/**
* Add axis flip fallbacks
*/
private addAxisFlips;
/**
* Add standard dropdown positions
*/
private addStandardPositions;
/**
* Add center alignment fallbacks
*/
private addCenterFallbacks;
/**
* Check if position is duplicate
*/
private isPositionDuplicate;
/**
* Set the content template to be displayed in the overlay
*/
setContentTemplate(template: TemplateRef): void;
/**
* Toggle the dropdown open/close state
*/
toggle(): void;
/**
* @internal
* Handle click activation
*/
handleClick(event: MouseEvent): void;
/**
* @internal
* Handle pointer down activation
*/
handlePointerDown(event: PointerEvent): void;
/**
* @internal
* Handle Enter key activation
*/
handleKeyDownEnter(event: Event): void;
/**
* @internal
* Handle Space key activation
*/
handleKeyDownSpace(event: Event): void;
/**
* Open the dropdown
* Sets up overlay with animation and emits opened event
*/
open(): void;
/**
* Close the dropdown
* Triggers closing animation and emits closed event
*/
close(): void;
/**
* Handle animation end events
* Completes state transitions when animations finish
*/
onAnimationEnd(event: AnimationEvent): void;
/**
* Handle position changes from CDK overlay
*/
onPositionChange(position: ConnectedOverlayPositionChange): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}
export {};