BeforeCreateArgs: {
    close: (() => void);
    components: {
        [name: string]: any;
    };
    helpers: {
        BettyPrefabs: typeof BettyPrefabs;
        PropertyKind: typeof PropertyKind;
        addActionVariable: ((actionId: string, name: string, kind: ActionVariableKind, options: object) => Promise<ActionVariable>);
        addModelAndProperties: ((modelName: string, properties: ModelPropertyInput[]) => Promise<Model>);
        addSchemaModel: ((name: string, jsonSchema: string) => Promise<SchemaModel>);
        camelToSnakeCase: ((str: string) => string);
        cloneStructure: ((prefabName: string) => PrefabReference);
        createBlacklist: ((whiteList: PropertyKind[]) => PropertyKind[]);
        createUuid: (() => string);
        createWrapper: ((attrs: WrapperAttrs, descendants: PrefabReference[]) => PrefabWrapper);
        getPageAuthenticationProfileId: (() => string);
        getPageName: (() => string);
        linkOption: ((attrs: LinkOptionProps) => LinkedOptionProducer);
        makeBettyInput: ((prefabName: string, model: Model, property: Property, variable: ActionVariable, relatedIdProperties?: string[][], relatedModelIds?: Record<string, string>) => PrefabReference);
        makeBettyUpdateInput: ((prefabName: string, model: Model, property: Property, variable: ActionVariable, relatedIdProperties?: string[][], relatedModelIds?: Record<string, string>) => PrefabReference);
        prepareAction: ((...args: MakePrepareActionArgs) => Promise<PreparedAction>);
        prepareInput: ((actionId: string | null, variableName: string | undefined, kind: PropertyKind, propertyKind: PropertyKind, permissions?: "public" | "private" | "inherit", getPageAuthenticationProfileId?: string) => Promise<PreparedInput>);
        setOption: ((structure: PrefabComponent, key: string, transform: ((option: PrefabComponentOption) => PrefabComponentOption)) => void);
        useActionIdSelector: (() => string | null);
        useCurrentPageId: (() => string);
        useCurrentPartialId: (() => string);
        useModelIdSelector: (() => string | null);
        useModelQuery: ((options: Record<string, any>) => {
            data: Record<string, any> | null;
            error: Record<string, any> | null;
            loading: boolean;
        });
        useModelRelationQuery: ((propertyModelId: string) => {
            data: Record<string, any> | null;
            error: Record<string, any> | null;
            loading: boolean;
        });
        usePrefabSelector: (() => {
            id: string;
            name: string;
        } | null);
        usePropertyQuery: ((propertyId: string) => {
            data: Record<string, any> | null;
            error: Record<string, any> | null;
            loading: boolean;
        });
    };
    modelId: string;
    prefab: Prefab;
    prefabs: Prefab[];
    save: ((prefab: Prefab) => void);
}