import { Schema } from 'effect';
export declare const TypesyncHypergraphSchemaStatus: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
export type TypesyncHypergraphSchemaStatus = typeof TypesyncHypergraphSchemaStatus.Type;
export declare const TypesyncHypergraphSchemaTypeProperty: Schema.extend<Schema.Union<[Schema.Struct<{
    dataType: Schema.Literal<["String", "Number", "Boolean", "Date", "Point"]>;
    name: typeof Schema.NonEmptyTrimmedString;
    knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
    optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
}>, Schema.Struct<{
    dataType: Schema.refine<`Relation(${string})`, Schema.Schema<string, string, never>>;
    relationType: Schema.refine<string, typeof Schema.Trimmed>;
    name: typeof Schema.NonEmptyTrimmedString;
    knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
    optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
}>]>, Schema.Struct<{
    status: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
}>>;
export type TypesyncHypergraphSchemaTypeProperty = typeof TypesyncHypergraphSchemaTypeProperty.Type;
declare const TypesyncHypergraphSchemaType_base: Schema.Class<TypesyncHypergraphSchemaType, {
    status: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
    properties: Schema.filter<Schema.filter<Schema.Array$<Schema.extend<Schema.Union<[Schema.Struct<{
        dataType: Schema.Literal<["String", "Number", "Boolean", "Date", "Point"]>;
        name: typeof Schema.NonEmptyTrimmedString;
        knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
        optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
    }>, Schema.Struct<{
        dataType: Schema.refine<`Relation(${string})`, Schema.Schema<string, string, never>>;
        relationType: Schema.refine<string, typeof Schema.Trimmed>;
        name: typeof Schema.NonEmptyTrimmedString;
        knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
        optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
    }>]>, Schema.Struct<{
        status: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
    }>>>>>;
    name: typeof Schema.NonEmptyTrimmedString;
    knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
}, Schema.Struct.Encoded<{
    status: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
    properties: Schema.filter<Schema.filter<Schema.Array$<Schema.extend<Schema.Union<[Schema.Struct<{
        dataType: Schema.Literal<["String", "Number", "Boolean", "Date", "Point"]>;
        name: typeof Schema.NonEmptyTrimmedString;
        knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
        optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
    }>, Schema.Struct<{
        dataType: Schema.refine<`Relation(${string})`, Schema.Schema<string, string, never>>;
        relationType: Schema.refine<string, typeof Schema.Trimmed>;
        name: typeof Schema.NonEmptyTrimmedString;
        knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
        optional: Schema.optional<Schema.NullishOr<typeof Schema.Boolean>>;
    }>]>, Schema.Struct<{
        status: Schema.NullOr<Schema.Literal<["published", "synced", "published_not_synced"]>>;
    }>>>>>;
    name: typeof Schema.NonEmptyTrimmedString;
    knowledgeGraphId: Schema.NullOr<typeof Schema.UUID>;
}>, never, {
    readonly name: string;
} & {
    readonly knowledgeGraphId: string | null;
} & {
    readonly properties: readonly (({
        readonly name: string;
        readonly knowledgeGraphId: string | null;
        readonly optional?: boolean | null | undefined;
        readonly dataType: `Relation(${string})`;
        readonly relationType: string;
    } | {
        readonly name: string;
        readonly knowledgeGraphId: string | null;
        readonly optional?: boolean | null | undefined;
        readonly dataType: "String" | "Number" | "Boolean" | "Date" | "Point";
    }) & {
        readonly status: "published" | "synced" | "published_not_synced" | null;
    })[];
} & {
    readonly status: "published" | "synced" | "published_not_synced" | null;
}, {}, {}>;
export declare class TypesyncHypergraphSchemaType extends TypesyncHypergraphSchemaType_base {
}
declare const TypesyncHypergraphSchema_base: Schema.Class<TypesyncHypergraphSchema, {
    types: Schema.filter<Schema.filter<Schema.filter<Schema.Array$<typeof TypesyncHypergraphSchemaType>>>>;
}, Schema.Struct.Encoded<{
    types: Schema.filter<Schema.filter<Schema.filter<Schema.Array$<typeof TypesyncHypergraphSchemaType>>>>;
}>, never, {
    readonly types: readonly TypesyncHypergraphSchemaType[];
}, {}, {}>;
export declare class TypesyncHypergraphSchema extends TypesyncHypergraphSchema_base {
}
/**
 * Extending the hypergraph [Mapping definition](../../mapping/Mapping.ts) to make it an effect Schema instance.
 * Allows decoding as well as passing in the api request payload
 */
export declare const TypesyncHypergraphMapping: Schema.Record$<typeof Schema.NonEmptyTrimmedString, Schema.Struct<{
    typeIds: Schema.filter<Schema.Array$<typeof Schema.UUID>>;
    properties: Schema.optional<Schema.UndefinedOr<Schema.Record$<typeof Schema.NonEmptyTrimmedString, typeof Schema.UUID>>>;
    relations: Schema.optional<Schema.UndefinedOr<Schema.Record$<typeof Schema.NonEmptyTrimmedString, typeof Schema.UUID>>>;
}>>;
export type TypesyncHypergraphMapping = typeof TypesyncHypergraphMapping.Type;
export {};
//# sourceMappingURL=Model.d.ts.map