import * as EffectSchema from 'effect/Schema';
export declare const SpaceTypeSchema: EffectSchema.Union<[EffectSchema.Literal<["PERSONAL"]>, EffectSchema.Literal<["DAO"]>]>;
export type SpaceType = typeof SpaceTypeSchema.Type;
export declare const PublicSpaceSchema: EffectSchema.Struct<{
    id: typeof EffectSchema.String;
    type: EffectSchema.Union<[EffectSchema.Literal<["PERSONAL"]>, EffectSchema.Literal<["DAO"]>]>;
    name: typeof EffectSchema.String;
    avatar: EffectSchema.optional<typeof EffectSchema.String>;
    editorIds: EffectSchema.Array$<typeof EffectSchema.String>;
    memberIds: EffectSchema.Array$<typeof EffectSchema.String>;
}>;
export type PublicSpace = typeof PublicSpaceSchema.Type;
type SpacesQueryResult = {
    spaces?: {
        id: string;
        type: 'PERSONAL' | 'DAO';
        page: {
            name?: string | null;
            relationsList?: {
                toEntity?: {
                    valuesList?: {
                        propertyId: string;
                        text: string | null;
                    }[];
                } | null;
            }[];
        } | null;
        editorsList?: {
            memberSpaceId: string;
        }[];
        membersList?: {
            memberSpaceId: string;
        }[];
    }[];
};
export declare const parseSpacesQueryResult: (queryResult: SpacesQueryResult) => {
    data: {
        readonly name: string;
        readonly id: string;
        readonly type: "PERSONAL" | "DAO";
        readonly avatar?: string | undefined;
        readonly editorIds: readonly string[];
        readonly memberIds: readonly string[];
    }[];
    invalidSpaces: Record<string, unknown>[];
};
export type FindManyPublicFilter = Readonly<{
    memberId: string;
    editorId?: never;
    spaceType?: SpaceType;
}> | Readonly<{
    editorId: string;
    memberId?: never;
    spaceType?: SpaceType;
}> | Readonly<{
    memberId?: undefined;
    editorId?: undefined;
    spaceType?: SpaceType;
}>;
export type FindManyPublicParams = Readonly<{
    filter?: FindManyPublicFilter;
}>;
export declare const buildFilterString: (filter?: FindManyPublicFilter) => string | undefined;
export declare const buildSpacesQuery: (filter?: FindManyPublicFilter) => string;
export declare const findManyPublic: (params?: FindManyPublicParams) => Promise<{
    data: {
        readonly name: string;
        readonly id: string;
        readonly type: "PERSONAL" | "DAO";
        readonly avatar?: string | undefined;
        readonly editorIds: readonly string[];
        readonly memberIds: readonly string[];
    }[];
    invalidSpaces: Record<string, unknown>[];
}>;
export {};
//# sourceMappingURL=find-many-public.d.ts.map