export declare enum ExtendedPropertyTableRelationshipType {
    OneToOne = "OneToOne",
    OneToMany = "OneToMany"
}
export declare enum ExtendedPropertyDataType {
    String = "String",
    Integer = "Integer",
    DateTime = "DateTime",
    DateOnly = "DateOnly",
    TimeOnly = "TimeOnly",
    TimestampOffset = "TimestampOffset",
    Boolean = "Boolean",
    Double = "Double"
}
export declare enum PortalType {
    Current = "Current",
    ArcGISOnline = "ArcGISOnline",
    Other = "Other"
}
export declare enum ExtendedPropertyItemType {
    SurveyForm = "SurveyForm"
}
export interface FeatureServiceProperties {
    itemId: string;
    itemType?: ExtendedPropertyItemType;
    layerId: string;
    portalType?: PortalType;
    portalUrl?: string;
    featureServiceUniqueId: string;
    secure?: boolean;
}
export interface BasicTableProperties {
    tableName: string;
    tableAlias: string;
    relationshipType: ExtendedPropertyTableRelationshipType;
    featureServiceProperties?: FeatureServiceProperties;
    extendedPropertyDefinitions: Array<ExtendedPropertyDefinition>;
}
export interface ExtendedPropertyTableDefinition extends BasicTableProperties {
    tableOrder: number;
    updateExisting?: boolean;
    associateToExisting?: boolean;
    isAssociated?: boolean;
}
export interface TableDefinition extends BasicTableProperties {
    jobTemplates: string[];
}
export declare enum ExtendedPropertyDomainType {
    CodedValue = "codedValue"
}
export interface CodedValue {
    name: string;
    code: string;
}
export interface ExtendedPropertyDomain {
    type: ExtendedPropertyDomainType;
    codedValues?: Array<CodedValue>;
}
export interface ExtendedPropertyDefinition {
    propertyName: string;
    propertyAlias: string;
    propertyOrder: number;
    dataType: ExtendedPropertyDataType;
    defaultValue?: any;
    fieldLength?: number;
    required: boolean;
    editable: boolean;
    visible: boolean;
    domain?: ExtendedPropertyDomain;
}
