/**
 * Next.js specific utilities for metafy-seo
 *
 * These helpers generate metadata objects compatible with:
 * - Next.js 14+ App Router `export const metadata`
 * - Next.js `generateMetadata()` function
 *
 * @example
 * ```tsx
 * // app/page.tsx
 * import { generateNextMetadata, blogPostPreset } from 'metafy-seo/next'
 *
 * export const metadata = generateNextMetadata(blogPostPreset({
 *   title: 'My Blog Post',
 *   description: 'A great article',
 *   slug: '/blog/my-post',
 *   author: 'Nigel',
 *   datePublished: '2025-01-01'
 * }))
 * ```
 */
import type { SeoConfig } from './types';
/**
 * Next.js Metadata type (subset of what Next.js accepts)
 * Full type available from 'next' package
 */
export interface NextMetadata {
    title?: string | {
        default: string;
        template?: string;
    };
    description?: string;
    robots?: string | {
        index?: boolean;
        follow?: boolean;
    };
    viewport?: string | {
        width?: string;
        initialScale?: number;
    };
    themeColor?: string;
    authors?: Array<{
        name: string;
        url?: string;
    }>;
    publisher?: string;
    alternates?: {
        canonical?: string;
        languages?: Record<string, string>;
    };
    openGraph?: {
        type?: string;
        siteName?: string;
        title?: string;
        description?: string;
        url?: string;
        images?: Array<{
            url: string;
            alt?: string;
            width?: number;
            height?: number;
        }>;
        locale?: string;
        article?: {
            publishedTime?: string;
            modifiedTime?: string;
            authors?: string[];
            section?: string;
            tags?: string[];
        };
    };
    twitter?: {
        card?: 'summary' | 'summary_large_image' | 'app' | 'player';
        site?: string;
        creator?: string;
        title?: string;
        description?: string;
        images?: string | string[];
    };
    icons?: {
        icon?: string | string[];
        apple?: string | string[];
        shortcut?: string;
    };
    verification?: {
        google?: string;
        yandex?: string;
        other?: Record<string, string>;
    };
    other?: Record<string, string>;
}
/**
 * Convert a metafy-seo SeoConfig to Next.js Metadata format.
 *
 * @param config - The SEO configuration object
 * @returns A Next.js compatible Metadata object
 *
 * @example
 * ```tsx
 * // app/page.tsx
 * import { generateNextMetadata } from 'metafy-seo'
 *
 * export const metadata = generateNextMetadata({
 *   title: 'My Page',
 *   description: 'Page description',
 *   canonical: '/my-page'
 * })
 * ```
 */
export declare function generateNextMetadata(config: SeoConfig): NextMetadata;
/**
 * Type-safe helper for creating Next.js metadata with autocomplete.
 * Simply re-exports generateNextMetadata for semantic clarity.
 */
export declare const createMetadata: typeof generateNextMetadata;
