import React from 'react';
import { PropertyCategory, PropertyMap, PropertyOption, PropertyType, PropertyValueMap } from '@parlor/common';
import { DataType, PropertyFormat } from '@parlor/common';
export interface PropertyMapValues {
    category?: PropertyCategory[];
    dataType: DataTypeOption;
    description?: string;
    directionality?: string;
    integrationSources?: Record<string, {
        id: string;
        title: string;
    } | undefined>;
    isDisplayable: boolean;
    isManuallyEditable: boolean;
    isQueryable: boolean;
    name: string;
    objectType: ObjectTypeOption;
    parlorKey: string;
    propertyFormat: PropertyFormatOption;
    required?: boolean;
    showInCreationForm?: boolean;
    sourceProperties?: Record<string, PropertyOption>;
    valueMaps: PropertyValueMap[];
}
export declare const objectTypeOptions: ({
    id: PropertyType;
    label: string;
    prefix?: undefined;
} | {
    id: PropertyType;
    label: string;
    prefix: string;
})[];
export type ObjectTypeOption = (typeof objectTypeOptions)[number];
export declare const steps: {
    1: string;
    2: string;
    3: string;
};
export declare const editSteps: {
    1: string;
    2: string;
    3: string;
};
export interface IInitialContextState {
    propertyMap: Partial<PropertyMap>;
    step: number;
    steps: Record<number, string>;
}
export declare const initialContextState: IInitialContextState;
export interface PropertyMapCreationContextAction {
    payload: PropertyMap[keyof PropertyMap] | number;
    type: 'setStep' | 'setPropertyMap' | 'updatePropertyMap';
}
export declare function contextReducer(state: IInitialContextState, action: PropertyMapCreationContextAction): IInitialContextState;
export interface ICreatePropertyMapContext {
    dispatch: React.Dispatch<PropertyMapCreationContextAction>;
    state: IInitialContextState;
}
export declare const CreatePropertyMapContext: React.Context<ICreatePropertyMapContext>;
export type FieldTypes = keyof PropertyMap;
export declare const useCreatePropertyMapContext: () => ICreatePropertyMapContext;
export declare function parseObjectSources(objectSources?: (PropertyOption | null)[]): {
    integrationSources?: PropertyMapValues['integrationSources'];
    sourceProperties?: PropertyMapValues['sourceProperties'];
};
export declare const dataTypeOptions: {
    id: DataType;
    label: string;
}[];
export type DataTypeOption = (typeof dataTypeOptions)[number];
export declare const dropdownSelectOptions: {
    id: string;
    label: string;
}[];
export type DropdownSelectOption = (typeof dropdownSelectOptions)[number];
export declare const booleanOptions: {
    id: string;
    label: string;
}[];
export type BooleanOption = (typeof booleanOptions)[number];
export declare const propertyFormatOptions: {
    id: PropertyFormat;
    label: string;
}[];
export type PropertyFormatOption = (typeof propertyFormatOptions)[number];
