import * as React from 'react';
import * as Redux from 'redux';
import { AdaptableObject } from '../../../AdaptableState/Common/AdaptableObject';
import { IColItem } from '../../UIInterfaces';
import { AdaptableApi } from '../../../Api/AdaptableApi';
import { ModuleInfo } from '../../../Strategy/Interface/IModule';
import { AccessLevel } from '../../../AdaptableState/Common/Entitlement';
import { AdaptableSharedEntityConfig } from '../../../AdaptableState/TeamSharingState';
export interface BaseRowProps<View> extends React.ClassAttributes<View> {
    colItems: IColItem[];
    api: AdaptableApi;
}
export interface BaseEntityRowProps<View> extends BaseRowProps<View> {
    adaptableObject: AdaptableObject;
    onDeleteConfirm: Redux.Action;
    onEdit: (AdaptableObject: AdaptableObject) => void;
    onClone?: (AdaptableObject: AdaptableObject) => void;
    moduleInfo: ModuleInfo;
}
export interface SharedEntityRowProps<View> extends BaseEntityRowProps<View> {
    onShare: (config: AdaptableSharedEntityConfig) => void;
    teamSharingActivated: boolean;
    accessLevel: AccessLevel;
    onSuspend?: (adaptableObject: AdaptableObject) => void;
    onUnSuspend?: (adaptableObject: AdaptableObject) => void;
}
export interface SharedEntityComponent<View> extends React.ClassAttributes<View> {
    entity: AdaptableObject;
    api: AdaptableApi;
}
