import { Observable } from "rxjs";
export interface EditorHandler {
    [column: string]: {
        visible?: boolean | 'create' | 'update';
        items?: any[] | Observable<any[]>;
    };
}
export interface SdItem<T = any> {
    sdId?: string;
    originItem?: any;
    selectable?: boolean;
    isSelected?: boolean;
    actions?: string[];
    groupedActions?: string[];
    isExpanded?: boolean;
    isExpanding?: boolean;
    expandDetail?: any;
    editorErrorMessage?: string;
    editorStatus?: 'create' | 'update';
    editorHandlerRow?: EditorHandlerRow;
    editorHandlerColumn?: {
        [key: string]: {
            visible: boolean;
            errorMessage?: string;
        };
    };
    sdGroup?: {
        htmlTemplate: string;
        items: (T & SdItem<T>)[];
    };
    sdVersion?: string;
    temporary?: any;
}
export interface EditorHandlerRow {
    status?: 'create' | 'update';
    visible?: boolean;
    editable?: boolean;
    removable?: boolean;
    savable?: boolean;
    cancelable?: boolean;
    errorMessage?: string;
    temporary?: any;
    saving?: boolean;
}
export declare type SdGridMaterialItem<T = any> = T & SdItem<T>;
