import { RecordValidationFunc } from "../services/custom-validation-func";
import { OCResourceEnum } from "./oc-resource-enum";
import { OpenAPIProperties } from "./open-api";
export interface OCResource {
    name: OCResourceEnum;
    modelName: string;
    children?: OCResourceEnum[];
    isChild?: boolean;
    parentResource?: OCResource;
    parentRefField?: string;
    sdkObject: any;
    isAssignment?: boolean;
    createPriority: number;
    listMethodName?: string;
    createMethodName?: string;
    foreignKeys?: ForeignKeys;
    openAPIProperties?: OpenAPIProperties;
    path: string;
    requiredCreateFields?: string[];
    redactFields?: string[];
    hasOwnerIDField?: boolean;
    downloadTransformFunc?: (x: any) => any;
    customValidationFunc?: RecordValidationFunc;
}
export interface ForeignKeys {
    [fieldName: string]: ForeignKey;
}
export interface ForeignKey {
    foreignResource: OCResourceEnum;
    foreignParentRefField?: string;
}
