/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow strict
 */

import type {LexicalExtension, LexicalNode} from 'lexical';
import type {Signal} from '@lexical/extension/signals';

declare export function $defaultShouldInsertAfter(node: LexicalNode): boolean;

export type ClickAfterLastBlockConfig = {
  disabled: boolean,
  $shouldInsertAfter: (node: LexicalNode) => boolean,
};

export interface ClickAfterLastBlockOutput {
  disabled: Signal<boolean>;
  $shouldInsertAfter: Signal<(node: LexicalNode) => boolean>;
}

declare export var ClickAfterLastBlockExtension: LexicalExtension<
  ClickAfterLastBlockConfig,
  '@lexical/ClickAfterLastBlock',
  ClickAfterLastBlockOutput,
  unknown,
>;
