export type SkipLinkData = {
    /**
     * id for the element that will be skipped to
     */
    id: string;
    /**
     * Text for the link that will appear in the skip link menu
     */
    label: string;
    /**
     * Desired position in the skip link menu
     */
    listIndex?: number;
    /**
     * Called when a user clicks on the skip link,
     * immediately before focus is moved to the associated element.
     *
     * This can be used to update state, such as to show a hidden element.
     *
     * @deprecated Only used when `platform_dst_nav4_skip_link_a11y_1` is OFF.
     * When the gate is on, prefer `navigate` for consumers that need to atomically
     * commit state and move focus somewhere other than the slot element with id `id`.
     * This callback can be removed once the gate is fully enabled and cleaned up.
     */
    onBeforeNavigate?: () => void;
    /**
     * Replaces the default "focus the element with `id`" behavior when the skip link is activated.
     *
     * Use this when the consumer needs to atomically commit state and move focus to
     * a different element (e.g. SideNav expanding and focusing the first nav item).
     *
     * The universal pre/post work owned by `SkipLink` (e.g. `event.preventDefault`,
     * `window.scrollTo`) still runs around this callback. Only the focus step is replaced.
     *
     * Only consumed when `platform_dst_nav4_skip_link_a11y_1` is enabled.
     */
    navigate?: () => void;
    /**
     * Used to hide skip links for slots with 0 height or width.
     *
     * We can remove this once products conditionally render slots correctly.
     */
    isHidden?: boolean;
};
