import React from 'react';
import { AssignmentModel, AssignmentModelConfig, AssignmentStore, AssignmentStoreConfig, DependencyModel, DependencyModelConfig, DependencyStore, DependencyStoreConfig, EventModel, EventModelConfig, EventStore, EventStoreConfig, Model, ModelConfig, ProjectModel, ResourceModel, ResourceModelConfig, ResourceStore, ResourceStoreConfig, ResourceTimeRangeModel, ResourceTimeRangeModelConfig, ResourceTimeRangeStore, ResourceTimeRangeStoreConfig, SchedulerProjectModel, SchedulerTimeRangeModel, StateTrackingManager, StateTrackingManagerConfig, Store, StoreConfig, TimeRangeModel, TimeRangeModelConfig, TimeSpan } from '@bryntum/calendar';
import { processWidgetContent } from './WrapperHelper.js';
export declare type BryntumCalendarProjectModelProps = {
    adjustDurationToDST?: boolean;
    assignmentModelClass?: typeof AssignmentModel;
    assignments?: AssignmentModel[] | AssignmentModelConfig[];
    assignmentsData?: AssignmentModel[] | AssignmentModelConfig[];
    assignmentStore?: AssignmentStore | AssignmentStoreConfig;
    assignmentStoreClass?: typeof AssignmentStore | object;
    children?: boolean | object[] | Model[] | ModelConfig[];
    dependencies?: DependencyModel[] | DependencyModelConfig[];
    dependenciesData?: DependencyModel[] | DependencyModelConfig[];
    dependencyModelClass?: typeof DependencyModel;
    dependencyStore?: DependencyStore | DependencyStoreConfig;
    dependencyStoreClass?: typeof DependencyStore | object;
    eventModelClass?: typeof EventModel;
    events?: EventModel[] | EventModelConfig[];
    eventsData?: EventModel[] | EventModelConfig[];
    eventStore?: EventStore | EventStoreConfig;
    eventStoreClass?: typeof EventStore | object;
    expanded?: boolean;
    id?: string | number;
    includeLegacyDataProperties?: boolean;
    isFullyLoaded?: boolean;
    json?: string;
    orderedParentIndex?: number;
    parentId?: string | number | null;
    parentIndex?: number;
    readOnly?: boolean;
    remoteChildCount?: number;
    resourceModelClass?: typeof ResourceModel;
    resources?: ResourceModel[] | ResourceModelConfig[];
    resourcesData?: ResourceModel[] | ResourceModelConfig[];
    resourceStore?: ResourceStore | ResourceStoreConfig;
    resourceStoreClass?: typeof ResourceStore | object;
    resourceTimeRanges?: ResourceTimeRangeModel[] | ResourceTimeRangeModelConfig[];
    resourceTimeRangesData?: ResourceTimeRangeModel[];
    resourceTimeRangeStore?: ResourceTimeRangeStore | ResourceTimeRangeStoreConfig;
    resourceTimeRangeStoreClass?: typeof ResourceTimeRangeStore | object;
    shouldSyncDataOnLoad?: (options: {
        store: Store;
        records: Model;
        data: object[];
    }) => Set<any> | boolean;
    silenceInitialCommit?: boolean;
    stm?: StateTrackingManagerConfig | StateTrackingManager;
    timeRangeModelClass?: typeof TimeRangeModel;
    timeRanges?: SchedulerTimeRangeModel[] | TimeRangeModelConfig[];
    timeRangesData?: TimeSpan[];
    timeRangeStore?: Store | StoreConfig;
    timeRangeStoreClass?: typeof Store | object;
    timeZone?: string | number;
    toJSONResultFormat?: 'inlineData' | 'model';
    useRawData?: boolean;
    onChange?: ((event: {
        source: SchedulerProjectModel | any;
        store: Store;
        action: 'remove' | 'removeAll' | 'add' | 'clearchanges' | 'filter' | 'update' | 'dataset' | 'replace';
        record: Model;
        records: Model[];
        changes: object;
    }) => void) | string;
    onDataReady?: ((event: {
        source: SchedulerProjectModel | any;
        isInitialCommit: boolean;
        records: Set<any>;
    }) => void) | string;
};
export declare class BryntumCalendarProjectModel extends React.Component<BryntumCalendarProjectModelProps> {
    static instanceClass: typeof ProjectModel;
    static instanceName: string;
    processWidgetContent: typeof processWidgetContent;
    dataStores: {
        assignmentStore: string;
        dependencyStore: string;
        eventStore: string;
        resourceStore: string;
        resourceTimeRangeStore: string;
        timeRangeStore: string;
    };
    static configNames: string[];
    static propertyConfigNames: string[];
    static propertyNames: string[];
    instance: ProjectModel;
    element: HTMLElement;
    componentDidMount(): void;
    componentWillUnmount(): void;
    shouldComponentUpdate(nextProps: Readonly<BryntumCalendarProjectModelProps>, nextState: Readonly<{}>): boolean;
    render(): React.ReactNode;
}
