import { Schema } from 'effect';
import type { Environment } from '../../vendor/cel-js/lib/index.js';
export type RegistryItemValue = Readonly<{
    id: string;
    groupId: string;
    type: string;
    compatibilityDate: string;
}> & Readonly<Record<string, unknown>>;
export type RegistrySubItemValue = Readonly<{
    id: string;
    type: string;
    compatibilityDate: string;
}> & Readonly<Record<string, unknown>>;
export declare function ActionSchemaFields(configure: (env: Environment) => void): {
    ActionGroup: Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        variant: Schema.optional<Schema.Literal<["default", "primary", "destructive", "ghost", "link"]>>;
    }>;
    ActionGroupItem: Schema.Schema<RegistryItemValue | {
        readonly disabled?: string | undefined;
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly icon?: string | undefined;
        readonly hidden?: string | undefined;
        readonly tooltip?: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]] | undefined;
        readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
        readonly action?: any;
        readonly groupId: string;
        readonly hideTitle?: boolean | undefined;
    } | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly icon?: string | undefined;
        readonly items: readonly (RegistrySubItemValue | {
            readonly disabled?: string | undefined;
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        })[];
        readonly groupId: string;
        readonly hideTitle?: boolean | undefined;
    }, RegistryItemValue | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly groupId: string;
        readonly disabled?: string | undefined;
        readonly icon?: string | undefined;
        readonly hidden?: string | undefined;
        readonly tooltip?: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]] | undefined;
        readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
        readonly action?: any;
        readonly hideTitle?: boolean | undefined;
    } | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly items: readonly (RegistrySubItemValue | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly disabled?: string | undefined;
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        })[];
        readonly groupId: string;
        readonly icon?: string | undefined;
        readonly hideTitle?: boolean | undefined;
    }, never>;
    ActionItem: Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        groupId: Schema.refine<string, typeof Schema.String>;
        title: Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>;
        tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>>;
        icon: Schema.optional<Schema.SchemaClass<string, string, never>>;
        hidden: Schema.optional<Schema.Schema<string, string, never>>;
        disabled: Schema.optional<Schema.Schema<string, string, never>>;
        variant: Schema.optional<Schema.Literal<["default", "primary", "destructive", "ghost", "link"]>>;
        hideTitle: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
        action: Schema.optional<Schema.Schema<any, any, never>>;
    }>;
    DropdownAction: Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        title: Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>;
        tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>>;
        icon: Schema.optional<Schema.SchemaClass<string, string, never>>;
        hidden: Schema.optional<Schema.Schema<string, string, never>>;
        disabled: Schema.optional<Schema.Schema<string, string, never>>;
        variant: Schema.optional<Schema.Literal<["default", "primary", "destructive", "ghost", "link"]>>;
        action: Schema.optional<Schema.Schema<any, any, never>>;
    }>;
    DropdownActionItem: Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        groupId: Schema.refine<string, typeof Schema.String>;
        title: Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>;
        icon: Schema.optional<Schema.SchemaClass<string, string, never>>;
        hideTitle: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
        items: Schema.Array$<Schema.Schema<RegistrySubItemValue | {
            readonly disabled?: string | undefined;
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        }, RegistrySubItemValue | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly disabled?: string | undefined;
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        }, never>>;
    }>;
    fields: {
        size: Schema.optionalWith<Schema.Literal<["default", "sm", "xs"]>, {
            default: () => "default";
        }>;
        gap: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
            default: () => number;
        }>;
        style: Schema.optional<typeof Schema.String>;
        groups: Schema.Array$<Schema.Struct<{
            id: Schema.refine<string, typeof Schema.String>;
            variant: Schema.optional<Schema.Literal<["default", "primary", "destructive", "ghost", "link"]>>;
        }>>;
        items: Schema.Array$<Schema.Schema<RegistryItemValue | {
            readonly disabled?: string | undefined;
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
            readonly groupId: string;
            readonly hideTitle?: boolean | undefined;
        } | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly icon?: string | undefined;
            readonly items: readonly (RegistrySubItemValue | {
                readonly disabled?: string | undefined;
                readonly id: string;
                readonly title: readonly [{
                    readonly locale: "zh";
                    readonly message: string;
                }, ...{
                    readonly locale: "en" | "ja" | "ko";
                    readonly message: string;
                }[]];
                readonly icon?: string | undefined;
                readonly hidden?: string | undefined;
                readonly tooltip?: readonly [{
                    readonly locale: "zh";
                    readonly message: string;
                }, ...{
                    readonly locale: "en" | "ja" | "ko";
                    readonly message: string;
                }[]] | undefined;
                readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
                readonly action?: any;
            })[];
            readonly groupId: string;
            readonly hideTitle?: boolean | undefined;
        }, RegistryItemValue | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly groupId: string;
            readonly disabled?: string | undefined;
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
            readonly hideTitle?: boolean | undefined;
        } | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly items: readonly (RegistrySubItemValue | {
                readonly id: string;
                readonly title: readonly [{
                    readonly locale: "zh";
                    readonly message: string;
                }, ...{
                    readonly locale: "en" | "ja" | "ko";
                    readonly message: string;
                }[]];
                readonly disabled?: string | undefined;
                readonly icon?: string | undefined;
                readonly hidden?: string | undefined;
                readonly tooltip?: readonly [{
                    readonly locale: "zh";
                    readonly message: string;
                }, ...{
                    readonly locale: "en" | "ja" | "ko";
                    readonly message: string;
                }[]] | undefined;
                readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
                readonly action?: any;
            })[];
            readonly groupId: string;
            readonly icon?: string | undefined;
            readonly hideTitle?: boolean | undefined;
        }, never>>;
    };
};
export declare function ActionsConfig(configure: (env: Environment) => void): Schema.Struct<{
    size: Schema.optionalWith<Schema.Literal<["default", "sm", "xs"]>, {
        default: () => "default";
    }>;
    gap: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
        default: () => number;
    }>;
    style: Schema.optional<typeof Schema.String>;
    groups: Schema.Array$<Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        variant: Schema.optional<Schema.Literal<["default", "primary", "destructive", "ghost", "link"]>>;
    }>>;
    items: Schema.Array$<Schema.Schema<RegistryItemValue | {
        readonly disabled?: string | undefined;
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly icon?: string | undefined;
        readonly hidden?: string | undefined;
        readonly tooltip?: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]] | undefined;
        readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
        readonly action?: any;
        readonly groupId: string;
        readonly hideTitle?: boolean | undefined;
    } | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly icon?: string | undefined;
        readonly items: readonly (RegistrySubItemValue | {
            readonly disabled?: string | undefined;
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        })[];
        readonly groupId: string;
        readonly hideTitle?: boolean | undefined;
    }, RegistryItemValue | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly groupId: string;
        readonly disabled?: string | undefined;
        readonly icon?: string | undefined;
        readonly hidden?: string | undefined;
        readonly tooltip?: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]] | undefined;
        readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
        readonly action?: any;
        readonly hideTitle?: boolean | undefined;
    } | {
        readonly id: string;
        readonly title: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly items: readonly (RegistrySubItemValue | {
            readonly id: string;
            readonly title: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]];
            readonly disabled?: string | undefined;
            readonly icon?: string | undefined;
            readonly hidden?: string | undefined;
            readonly tooltip?: readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]] | undefined;
            readonly variant?: "default" | "link" | "destructive" | "primary" | "ghost" | undefined;
            readonly action?: any;
        })[];
        readonly groupId: string;
        readonly icon?: string | undefined;
        readonly hideTitle?: boolean | undefined;
    }, never>>;
    kind: Schema.tag<"shwfed.component.action">;
}>;
export declare function defaultActionsConfig(): ActionsConfigValue;
type AnySchema = Schema.Schema<any, any, any>;
export declare function getStructFieldTitle(schema: AnySchema, fieldName: string): string | undefined;
export declare function getStructFieldDescription(schema: AnySchema, fieldName: string): string | undefined;
/** Top-level `title` annotation of a schema, if any. */
export declare function getSchemaTitle(schema: AnySchema): string | undefined;
/** Top-level `description` annotation of a schema, if any. */
export declare function getSchemaDescription(schema: AnySchema): string | undefined;
export type ActionsConfigValue = Schema.Schema.Type<ReturnType<typeof ActionsConfig>>;
export type ActionGroupValue = ActionsConfigValue['groups'][number];
export type ActionGroupItemValue = ActionsConfigValue['items'][number];
export {};
