/// <reference types="react" />
import * as React from 'react';
import { IAttributeDisplayForm } from './model';
export interface IAttributeLoaderMetadataProps {
    getObjectUri: Function;
    getObjectDetails: Function;
}
export interface IAttributeLoaderProps {
    metadata?: IAttributeLoaderMetadataProps;
    projectId: string;
    uri?: string;
    identifier?: string;
    children(props: IAttributeLoaderChildren): any;
}
export interface IAttributeLoaderState {
    attributeDisplayForm: IAttributeDisplayForm;
    isLoading: boolean;
    isUsingIdentifier: boolean;
    error?: any;
}
export interface IAttributeLoaderChildren {
    attributeDisplayForm: IAttributeDisplayForm;
    isLoading: boolean;
    isUsingIdentifier: boolean;
}
export declare class AttributeLoader extends React.PureComponent<IAttributeLoaderProps, IAttributeLoaderState> {
    static propTypes: {
        projectId: React.Validator<any>;
        uri: React.Requireable<any>;
        identifier: React.Requireable<any>;
        metadata: React.Requireable<any>;
    };
    static defaultProps: Partial<IAttributeLoaderProps>;
    constructor(props: IAttributeLoaderProps);
    componentDidMount(): void;
    componentWillReceiveProps(nextProps: IAttributeLoaderProps): void;
    render(): any;
    private getAttributeDisplayForm(props);
}
