import { z } from 'zod';
import type { LinkPayload, NavigationLinkInput } from './types';
/**
 * Canonical navigation/link Zod contracts.
 *
 * Goal: a single source-of-truth for link shapes used across dashboard + SDK.
 * - Types live in `packages/api/src/navigation/types.ts`
 * - Schemas live here and are tied to types via `satisfies z.ZodType<...>`
 */
export declare const portalLinkPayloadSchema: z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const cartLinkLabelConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    kind: z.ZodLiteral<"icon-only">;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"icon-with-label">;
    label: z.ZodString;
}, z.core.$strip>], "kind">;
export declare const cartLinkPayloadSchema: z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>;
export declare const internalLinkPayloadSchema: z.ZodObject<{
    kind: z.ZodLiteral<"internal">;
    routeId: z.ZodString;
    entityId: z.ZodString;
    entityType: z.ZodEnum<{
        content: "content";
        page: "page";
    }>;
    href: z.ZodString;
    title: z.ZodString;
    typeLabel: z.ZodString;
    contentTypeKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contentTypeName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$loose>;
export declare const externalLinkSchema: z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>;
export declare const customLinkSchema: z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>;
export declare const pageLinkSchema: z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>;
export declare const entryLinkSchema: z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>;
export declare const linkPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    kind: z.ZodLiteral<"internal">;
    routeId: z.ZodString;
    entityId: z.ZodString;
    entityType: z.ZodEnum<{
        content: "content";
        page: "page";
    }>;
    href: z.ZodString;
    title: z.ZodString;
    typeLabel: z.ZodString;
    contentTypeKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contentTypeName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$loose>, z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>], "kind">;
export declare const navigationLinkInputSchemaOptions: readonly [z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>];
export declare const navigationLinkInputSchema: z.ZodDiscriminatedUnion<readonly [z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>], "kind">;
export declare const dashboardNavigationLinkSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    kind: z.ZodLiteral<"internal">;
    routeId: z.ZodString;
    entityId: z.ZodString;
    entityType: z.ZodEnum<{
        content: "content";
        page: "page";
    }>;
    href: z.ZodString;
    title: z.ZodString;
    typeLabel: z.ZodString;
    contentTypeKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contentTypeName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updatedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.core.$loose>, z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>], "kind">;
export declare const sdkNavigationLinkInputSchema: z.ZodDiscriminatedUnion<readonly [z.ZodObject<{
    kind: z.ZodLiteral<"page">;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"entry">;
    contentType: z.ZodString;
    identifier: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"external">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"url">;
    href: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"portal">;
    path: z.ZodOptional<z.ZodString>;
    labels: z.ZodOptional<z.ZodObject<{
        loggedOut: z.ZodOptional<z.ZodString>;
        loggedIn: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodObject<{
    kind: z.ZodLiteral<"cart">;
    badge: z.ZodEnum<{
        "show-count": "show-count";
        hidden: "hidden";
    }>;
    label: z.ZodDiscriminatedUnion<[z.ZodObject<{
        kind: z.ZodLiteral<"icon-only">;
    }, z.core.$strip>, z.ZodObject<{
        kind: z.ZodLiteral<"icon-with-label">;
        label: z.ZodString;
    }, z.core.$strip>], "kind">;
}, z.core.$strip>], "kind">;
export type NavigationInput = LinkPayload | NavigationLinkInput;
