import * as Schema from 'effect/Schema';
/**
 * Expected payload for layout actions.
 */
export declare namespace LayoutAction {
    export const UPDATE_LAYOUT = "dxos.org/plugin/layout/action/update-layout";
    const UpdateLayout_base: Schema.TaggedClass<UpdateLayout, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.SchemaClass<string, string, never>;
            subject: Schema.optional<Schema.SchemaClass<any, any, never>>;
            options: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
        }>;
        output: typeof Schema.Void;
    }>;
    /**
     * Generic layout action.
     */
    export class UpdateLayout extends UpdateLayout_base {
    }
    const SetLayoutMode_base: Schema.TaggedClass<SetLayoutMode, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["mode"]>;
            subject: Schema.optional<Schema.SchemaClass<string, string, never>>;
            options: Schema.Union<[Schema.Struct<{
                mode: Schema.SchemaClass<string, string, never>;
            }>, Schema.Struct<{
                revert: Schema.SchemaClass<boolean, boolean, never>;
            }>]>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class SetLayoutMode extends SetLayoutMode_base {
    }
    const UpdateSidebar_base: Schema.TaggedClass<UpdateSidebar, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["sidebar"]>;
            subject: Schema.optional<Schema.SchemaClass<string, string, never>>;
            options: Schema.optional<Schema.Struct<{
                state: Schema.Literal<["closed", "collapsed", "expanded"]>;
            }>>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class UpdateSidebar extends UpdateSidebar_base {
    }
    const UpdateComplementary_base: Schema.TaggedClass<UpdateComplementary, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["complementary"]>;
            subject: Schema.optional<Schema.SchemaClass<string, string, never>>;
            options: Schema.optional<Schema.Struct<{
                state: Schema.Literal<["closed", "collapsed", "expanded"]>;
            }>>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class UpdateComplementary extends UpdateComplementary_base {
    }
    const UpdateDialog_base: Schema.TaggedClass<UpdateDialog, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["dialog"]>;
            subject: Schema.optional<Schema.SchemaClass<string, string, never>>;
            options: Schema.Struct<{
                state: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
                type: Schema.optional<Schema.Literal<["default", "alert"]>>;
                blockAlign: Schema.optional<Schema.Literal<["start", "center", "end"]>>;
                overlayClasses: Schema.optional<Schema.SchemaClass<string, string, never>>;
                overlayStyle: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
                props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
            }>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class UpdateDialog extends UpdateDialog_base {
    }
    const UpdatePopover_base: Schema.TaggedClass<UpdatePopover, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["popover"]>;
            subject: Schema.optional<Schema.SchemaClass<any, any, never>>;
            options: Schema.extend<Schema.Struct<{
                side: Schema.optional<Schema.Literal<["top", "right", "bottom", "left"]>>;
                state: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
                props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
            }>, Schema.Union<[Schema.Struct<{
                variant: Schema.Literal<["virtual"]>;
                anchor: Schema.SchemaClass<any, any, never>;
            }>, Schema.Struct<{
                variant: Schema.optional<Schema.Literal<["react"]>>;
                anchorId: Schema.SchemaClass<string, string, never>;
            }>]>>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class UpdatePopover extends UpdatePopover_base {
    }
    export const Toast: Schema.Struct<{
        id: Schema.SchemaClass<string, string, never>;
        title: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
            ns: typeof Schema.String;
            count: Schema.optional<typeof Schema.Number>;
            defaultValue: Schema.optional<typeof Schema.String>;
        }>>>>]>>;
        description: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
            ns: typeof Schema.String;
            count: Schema.optional<typeof Schema.Number>;
            defaultValue: Schema.optional<typeof Schema.String>;
        }>>>>]>>;
        icon: Schema.optional<Schema.SchemaClass<string, string, never>>;
        duration: Schema.optional<Schema.SchemaClass<number, number, never>>;
        closeLabel: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
            ns: typeof Schema.String;
            count: Schema.optional<typeof Schema.Number>;
            defaultValue: Schema.optional<typeof Schema.String>;
        }>>>>]>>;
        actionLabel: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
            ns: typeof Schema.String;
            count: Schema.optional<typeof Schema.Number>;
            defaultValue: Schema.optional<typeof Schema.String>;
        }>>>>]>>;
        actionAlt: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
            ns: typeof Schema.String;
            count: Schema.optional<typeof Schema.Number>;
            defaultValue: Schema.optional<typeof Schema.String>;
        }>>>>]>>;
        onAction: Schema.optional<Schema.SchemaClass<any, any, never>>;
    }>;
    export interface Toast extends Omit<Schema.Schema.Type<typeof Toast>, 'onAction'> {
        onAction?: () => void;
    }
    const AddToast_base: Schema.TaggedClass<AddToast, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["toast"]>;
            subject: Schema.Struct<{
                id: Schema.SchemaClass<string, string, never>;
                title: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
                    ns: typeof Schema.String;
                    count: Schema.optional<typeof Schema.Number>;
                    defaultValue: Schema.optional<typeof Schema.String>;
                }>>>>]>>;
                description: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
                    ns: typeof Schema.String;
                    count: Schema.optional<typeof Schema.Number>;
                    defaultValue: Schema.optional<typeof Schema.String>;
                }>>>>]>>;
                icon: Schema.optional<Schema.SchemaClass<string, string, never>>;
                duration: Schema.optional<Schema.SchemaClass<number, number, never>>;
                closeLabel: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
                    ns: typeof Schema.String;
                    count: Schema.optional<typeof Schema.Number>;
                    defaultValue: Schema.optional<typeof Schema.String>;
                }>>>>]>>;
                actionLabel: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
                    ns: typeof Schema.String;
                    count: Schema.optional<typeof Schema.Number>;
                    defaultValue: Schema.optional<typeof Schema.String>;
                }>>>>]>>;
                actionAlt: Schema.optional<Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
                    ns: typeof Schema.String;
                    count: Schema.optional<typeof Schema.Number>;
                    defaultValue: Schema.optional<typeof Schema.String>;
                }>>>>]>>;
                onAction: Schema.optional<Schema.SchemaClass<any, any, never>>;
            }>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class AddToast extends AddToast_base {
    }
    const SwitchWorkspace_base: Schema.TaggedClass<SwitchWorkspace, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["workspace"]>;
            subject: Schema.SchemaClass<string, string, never>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class SwitchWorkspace extends SwitchWorkspace_base {
    }
    const RevertWorkspace_base: Schema.TaggedClass<RevertWorkspace, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["workspace"]>;
            options: Schema.Struct<{
                revert: Schema.Literal<[true]>;
            }>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class RevertWorkspace extends RevertWorkspace_base {
    }
    const Open_base: Schema.TaggedClass<Open, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["main"]>;
            subject: Schema.Array$<Schema.SchemaClass<string, string, never>>;
            options: Schema.optional<Schema.Struct<{
                state: Schema.optional<Schema.Literal<[true]>>;
                variant: Schema.optional<Schema.SchemaClass<string, string, never>>;
                key: Schema.optional<Schema.SchemaClass<string, string, never>>;
                workspace: Schema.optional<Schema.SchemaClass<string, string, never>>;
                scrollIntoView: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
                pivotId: Schema.optional<Schema.SchemaClass<string, string, never>>;
                positioning: Schema.optional<Schema.Union<[Schema.Literal<["start"]>, Schema.Literal<["end"]>]>>;
            }>>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class Open extends Open_base {
    }
    const Set_base: Schema.TaggedClass<Set, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["main"]>;
            subject: Schema.Array$<Schema.SchemaClass<string, string, never>>;
            options: Schema.Struct<{
                override: Schema.Literal<[true]>;
            }>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class Set extends Set_base {
    }
    const Close_base: Schema.TaggedClass<Close, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["main"]>;
            subject: Schema.Array$<Schema.SchemaClass<string, string, never>>;
            options: Schema.Struct<{
                state: Schema.Literal<[false]>;
            }>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class Close extends Close_base {
    }
    const ScrollIntoView_base: Schema.TaggedClass<ScrollIntoView, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["current"]>;
            subject: Schema.optional<Schema.SchemaClass<string, string, never>>;
            options: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class ScrollIntoView extends ScrollIntoView_base {
    }
    const Expose_base: Schema.TaggedClass<Expose, "dxos.org/plugin/layout/action/update-layout", {
        readonly _tag: Schema.tag<"dxos.org/plugin/layout/action/update-layout">;
    } & {
        input: Schema.Struct<{
            part: Schema.Literal<["navigation"]>;
            subject: Schema.SchemaClass<string, string, never>;
        }>;
        output: typeof Schema.Void;
    }>;
    export class Expose extends Expose_base {
    }
    export {};
}
//# sourceMappingURL=layout.d.ts.map