import zod from 'zod';

/**
 * Creates manifest schema.
 *
 * @returns Manifest runtime validation schema
 */
declare function createManifestSchema(): zod.ZodObject<{
    declarative_net_request: zod.ZodOptional<zod.ZodObject<{
        rule_resources: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">>, "many">>;
    }, "strip", zod.ZodTypeAny, {
        rule_resources?: zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }, {
        rule_resources?: zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }>>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
    declarative_net_request: zod.ZodOptional<zod.ZodObject<{
        rule_resources: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">>, "many">>;
    }, "strip", zod.ZodTypeAny, {
        rule_resources?: zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }, {
        rule_resources?: zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }>>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
    declarative_net_request: zod.ZodOptional<zod.ZodObject<{
        rule_resources: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">>, "many">>;
    }, "strip", zod.ZodTypeAny, {
        rule_resources?: zod.objectOutputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }, {
        rule_resources?: zod.objectInputType<{
            id: zod.ZodString;
            enabled: zod.ZodBoolean;
        }, zod.ZodTypeAny, "passthrough">[] | undefined;
    }>>;
}, zod.ZodTypeAny, "passthrough">>;
/**
 * Partial manifest schema type.
 * Note: This schema is not complete and should be extended with other properties.
 */
type Manifest = zod.infer<ReturnType<typeof createManifestSchema>>;

export type { Manifest };
