import { Schema } from 'effect';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
import type { MigrateFn, MigrateSource } from '../../../utils/resolve.js';
export declare const type: "com.shwfed.actions.button.event.dispatch";
export declare const compatibilityDate: "2026-05-15";
export declare const metadata: {
    readonly name: "触发事件";
    readonly icon: "fluent:flash-20-regular";
};
export declare function schema(_configure: (env: Environment) => void): Schema.Struct<{
    type: Schema.Literal<["com.shwfed.actions.button.event.dispatch"]>;
    compatibilityDate: Schema.Literal<["2026-05-15"]>;
    triggers: Schema.optional<Schema.Array$<Schema.Struct<{
        id: Schema.optional<Schema.refine<string, typeof Schema.String>>;
        target: Schema.refine<string, typeof Schema.String>;
        operation: Schema.SchemaClass<string, string, never>;
        compatibilityDate: Schema.optional<Schema.SchemaClass<string, string, never>>;
        params: Schema.optional<Schema.SchemaClass<unknown, unknown, never>>;
    }>>>;
}>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
/**
 * Adopts values stored under the standalone 「请求」 button
 * (`com.shwfed.actions.button.http.request.json@2026-04-18`). That button baked
 * the whole request lifecycle into itself — fire a request, classify the
 * result, toast a message, then run one of four result-keyed trigger lists.
 * The page now exposes the request as an ambient 「发送请求」 *operation* that is
 * itself one step of a trigger chain, so the same behaviour is expressed as an
 * ordinary 「触发事件」 button whose trigger list is `before` + the request row +
 * the success arm, flattened in order. Migration declarations live exclusively
 * on this (replacement) entry; the request folder is kept so not-yet-migrated
 * configs keep loading, but it is never touched here.
 */
export declare const migrateFrom: ReadonlyArray<MigrateSource>;
export declare const migrate: MigrateFn;
