/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { FormProps, FormRenderProps } from '@progress/kendo-react-form';
import { DialogProps } from '@progress/kendo-react-dialogs';
import { DataItem } from '../models/index.js';
import { SchedulerFormEditorProps } from '../editors/SchedulerFormEditor.js';
import { Omit } from '../models/Omit';
import * as React from 'react';
export interface SchedulerFormStateChangeEvent<T> {
    /**
     * The SchedulerForm instance that triggered the event.
     */
    target: SchedulerFormHandle;
    /**
     * The value associated with the event.
     */
    value: T;
    /**
     * The React synthetic event object.
     */
    syntheticEvent: React.SyntheticEvent;
}
/**
 * Represents the props of the KendoReact [SchedulerForm](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerform) component.
 */
export interface SchedulerFormProps extends Omit<FormProps, 'render' | 'onSubmit'> {
    /**
     * Specifies the `dataItem` to be visualized inside the form.
     */
    dataItem: DataItem;
    /**
     * The Form content that will be rendered. The default rendering includes a `dialog` and `editor`.
     *
     * For more information about customizing some parts of the default rendering please refer to the [SchedulerForm Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/form/overview) article.
     */
    render?: (props: FormRenderProps) => any;
    /**
     * Fires when you click the `cancel` button.
     */
    onCancel?: (event: SchedulerFormStateChangeEvent<null>) => void;
    /**
     * Fires when you click the `close` button.
     */
    onClose?: (event: SchedulerFormStateChangeEvent<null>) => void;
    /**
     * Fires when you click the `submit` button.
     */
    onSubmit: (event: SchedulerFormStateChangeEvent<any>) => void;
    /**
     * Overrides the component used for visualizing the `editor`.
     * The [SchedulerFormEditor](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerformeditor) component is used, by default.
     *
     * For more information, please refer to the [`Scheduler Form Customization`](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/form/overview) article.
     */
    editor?: React.ComponentType<SchedulerFormEditorProps>;
    /**
     * Overrides the component used for visualizing the `dialog`.
     * The [KendoReact Dialog](https://www.telerik.com/kendo-react-ui/components/dialogs/api/dialog) component is used, by default.
     *
     * For more information, please refer to the [`Scheduler Form Customization`](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/form/overview) article.
     */
    dialog?: React.ComponentType<DialogProps>;
}
/**
 * Represent the `ref` of the SchedulerForm component.
 */
export interface SchedulerFormHandle {
    /**
     * Represents the properties passed to the current instance of the `SchedulerForm`.
     */
    props: SchedulerFormProps;
}
/**
 * Represents the default `form` component rendered by the [SchedulerEditItem](https://www.telerik.com/kendo-react-ui/components/scheduler/api/scheduleredititem) and [SchedulerEditSlot](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulereditslot) components.
 *
 * Accepts [SchedulerFormProps](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerformprops) properties and provide [SchedulerFormHandle](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerformhandle) `ref` callback.
 */
export declare const SchedulerForm: React.ForwardRefExoticComponent<SchedulerFormProps & React.RefAttributes<SchedulerFormHandle | null>>;
export declare const schedulerFormDefaultProps: {
    dialog: React.ForwardRefExoticComponent<DialogProps & React.RefAttributes<import('@progress/kendo-react-dialogs').DialogHandle | null>>;
    validator: () => {};
};
