export declare function getDatasourceId(def?: Pick<datasources.ICreateDataSource, 'id' | 'namespace'>): string;
export type ISplitDatasource = {
    id: string;
    namespace: string;
    root: string;
    original: string;
    parts?: string[];
};
export declare function splitDatasourceID(source?: string): ISplitDatasource;
/**
 * checks if the attribute is a simple attribute.
 *
 * can be a scalar attribute or calculated attribute and have basic data types
 *
 * like string, number, boolean, date, time, datetime, etc.
 * @param attribute the attribute to check
 * @returns whether the attribute is a scalar or not
 */
export declare function isSimpleAttribute(attribute: datasources.IAttribute): boolean;
/**
 * Normalized data type used across the application.
 */
export type TNormalizedDataType = 'bool' | 'string' | 'number' | 'object' | 'date' | 'blob' | 'image';
/**
 * Converts a specific attribute/data type to its normalized data type.
 *
 * @param type the specific data type to normalize (e.g. 'short', 'text', 'uuid')
 * @returns the normalized data type, or `undefined` when the type is unknown
 */
export declare function getNormalizedDataType(type?: string): TNormalizedDataType | undefined;
/**
 *
 * @param attribute the attribute to check
 * @returns whether the attribute is an object or not
 */
export declare function isObjectAttribute(attribute: datasources.IAttribute): boolean;
/**
 * A related Entities attribute can be
 * - an attribute with kind 'relatedEntities'
 * - calculated with type suffixed with 'Selection'
 * @param attribute the attribute to check
 * @returns weather the attribute is a Related Entities.
 */
export declare function isRelatedEntitiesAttribute(attribute: datasources.IAttribute): boolean;
/**
 * A related Entities attribute can be
 * - an attribute with kind 'relatedEntity'
 * - calculated with type which is not suffixed with 'Selection' and not a basic data type
 * @param attribute the attribute to check
 * @returns weather the attribute is a Related Entities.
 */
export declare function isRelatedEntityAttribute(attribute: datasources.IAttribute): boolean;
/**
 * A related Entities attribute can be
 * - a related entity attribute
 * - a related entities attribute
 * @param attribute the attribute to check
 * @returns weather the attribute is a Related Entities.
 */
export declare function isRelatedAttribute(attribute: datasources.IAttribute): boolean;
export declare function isDataStoreMethod(method: catalog.IMethod): boolean;
export declare function isDataClassMethod(method: catalog.IMethod): boolean;
export declare function isEntityMethod(method: catalog.IMethod): boolean;
export declare function isEntitySelectionMethod(method: catalog.IMethod): boolean;
export declare function isEntityDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceEntity;
export declare function isEntitySelectionDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceEntitySelection;
export declare function isArrayDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceArray;
export declare function isObjectDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceObject;
export declare function isScalarDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceScalar;
export declare function isSimpleDatasource(datasource: datasources.ICreateDataSource): datasource is datasources.ICreateDataSourceArray | datasources.ICreateDataSourceObject | datasources.ICreateDataSourceScalar;
export declare const isEntity: (datasource: datasources.DataSource) => boolean;
export declare const isEntitySelection: (datasource: datasources.DataSource) => boolean;
export declare const _isArrayDatasource: (datasource: datasources.DataSource) => boolean;
export declare const _isObjectDatasource: (datasource: datasources.DataSource) => boolean;
export declare const isDateDatasource: (datasource: datasources.DataSource) => boolean;
export declare const isSameNamespace: (first: string | undefined, second: string | undefined) => boolean;
export declare function loadDS(): Promise<void>;
export declare function loadI18n(): Promise<void>;
