import { APIMeGetResult, APIProductsBrowseQueryParams, APIProductsBrowseResult, APIProductGetByIdParams, APIProductGetByIdResult, APIOrdersBrowseQueryParams, APIOrdersBrowseResult, APIOrderGetByIdParams, APIOrderGetByIdResult, APICartCreateBody, APICartCreateResult, APICartGetResult, APICollectionGetByIdParams, APICollectionGetByIdResult, APICollectionsBrowseQueryParams, APICollectionsBrowseResult, APICollectionCreateBody, APICollectionCreateResult, APICategoryGetByIdParams, APICategoryGetByIdResult, APICategoriesBrowseQueryParams, APICategoriesBrowseResult, APIPostsBrowseQueryParams, APIPostsBrowseResult, APIPostGetByIdParams, APIPostGetByIdResult, APIPostCreateBody, APIPostCreateResult, APIPostUpdateBody, APIPostUpdateResult, APIPostDeleteResult, APIPostCommentsBrowseQueryParams, APIPostCommentsBrowseResult, APIPostCommentCreateBody, APIPostCommentCreateResult, APIBlogCategoriesBrowseQueryParams, APIBlogCategoriesBrowseResult, APIBlogCategoryGetByIdParams, APIBlogCategoryGetByIdResult, APICustomersBrowseQueryParams, APICustomersBrowseResult, APICustomerGetByIdParams, APICustomerGetByIdResult, APICustomerUpdateBody, APICustomerUpdateResult, APICustomerAddressCreateBody, APICustomerAddressCreateResult, APICustomerOrdersBrowseQueryParams, APICustomerOrdersBrowseResult, APIInventoryBrowseQueryParams, APIInventoryBrowseResult, APIInventoryAdjustBody, APIInventoryAdjustResult, APIVariantGetByIdParams, APIVariantGetByIdResult, APIVariantUpdateBody, APIVariantUpdateResult, APIVariantCreateBody, APIVariantCreateResult, APISubscriberCreateBody, APISubscriberCreateResult, APISubscriberDeleteResult, APIContactMessageCreateBody, APIContactMessageCreateResult, APIProductCreateBody, APIProductCreateResult, APIProductUpdateBody, APIProductUpdateResult, APIProductDeleteResult, APIProductReviewsBrowseQueryParams, APIProductReviewsBrowseResult, APIProductReviewCreateBody, APIProductReviewCreateResult, APICategoryCreateBody, APICategoryCreateResult, APICategoryUpdateBody, APICategoryUpdateResult, APIOrderUpdateBody, APIOrderUpdateResult, APILegalPagesBrowseResult, APILegalPageGetByPathResult, APISearchQueryParams, APISearchResult, APIInstaviewImagesBrowseParams, APIInstaviewImagesBrowseQueryParams, APIInstaviewImagesBrowseResult } from './api-types.js';
export { APICartAddBody, APICartAddResult, APICartRemoveItemQueryParams, APICartRemoveItemResult, APICategoryGetByIdQueryParams, APICategoryUpdateQueryParams, APICollectionGetByIdQueryParams, APIProductDeleteQueryParams, APIProductGetByIdQueryParams, APIProductUpdateQueryParams, APIVariantGetByIdQueryParams, JSONContent } from './api-types.js';

interface CommerceConfig {
    /** API key. Defaults to process.env.YNS_API_KEY */
    token?: string;
    endpoint?: string;
    version?: "v1";
}

type APICollectionImportMembershipsBody = {
    file: File | Blob;
};
type APICollectionImportMembershipsResult = {
    ok: true;
    processed: number;
    inserted: number;
    skipped_existing: number;
    errors: Array<{
        row: number;
        collection_slug?: string;
        product_slug?: string;
        reason: string;
    }>;
};
declare class YNSProvider {
    #private;
    constructor(config?: CommerceConfig);
    meGet(): Promise<APIMeGetResult>;
    productBrowse(params: APIProductsBrowseQueryParams): Promise<APIProductsBrowseResult>;
    productGet(params: APIProductGetByIdParams): Promise<APIProductGetByIdResult | null>;
    orderBrowse(params: APIOrdersBrowseQueryParams): Promise<APIOrdersBrowseResult>;
    orderGet(params: APIOrderGetByIdParams): Promise<APIOrderGetByIdResult | null>;
    cartUpsert(body: APICartCreateBody): Promise<APICartCreateResult>;
    cartRemoveItem(params: {
        cartId: string;
        variantId: string;
    }): Promise<APICartGetResult>;
    cartGet(params: {
        cartId: string;
    }): Promise<APICartGetResult | null>;
    collectionGet(params: APICollectionGetByIdParams): Promise<APICollectionGetByIdResult | null>;
    collectionBrowse(params: APICollectionsBrowseQueryParams): Promise<APICollectionsBrowseResult>;
    collectionCreate(body: APICollectionCreateBody): Promise<APICollectionCreateResult>;
    collectionImportMemberships(body: APICollectionImportMembershipsBody): Promise<APICollectionImportMembershipsResult>;
    categoryGet(params: APICategoryGetByIdParams): Promise<APICategoryGetByIdResult | null>;
    categoriesBrowse(params: APICategoriesBrowseQueryParams): Promise<APICategoriesBrowseResult>;
    postBrowse(params?: APIPostsBrowseQueryParams): Promise<APIPostsBrowseResult>;
    postGet(params: APIPostGetByIdParams): Promise<APIPostGetByIdResult | null>;
    postCreate(body: APIPostCreateBody): Promise<APIPostCreateResult>;
    postUpdate(params: APIPostGetByIdParams, body: APIPostUpdateBody): Promise<APIPostUpdateResult>;
    postDelete(params: APIPostGetByIdParams): Promise<APIPostDeleteResult>;
    postCommentsBrowse(params: APIPostGetByIdParams, queryParams?: APIPostCommentsBrowseQueryParams): Promise<APIPostCommentsBrowseResult>;
    postCommentCreate(params: APIPostGetByIdParams, body: APIPostCommentCreateBody): Promise<APIPostCommentCreateResult>;
    blogCategoryBrowse(params?: APIBlogCategoriesBrowseQueryParams): Promise<APIBlogCategoriesBrowseResult>;
    blogCategoryGet(params: APIBlogCategoryGetByIdParams): Promise<APIBlogCategoryGetByIdResult | null>;
    customerBrowse(params?: APICustomersBrowseQueryParams): Promise<APICustomersBrowseResult>;
    customerGet(params: APICustomerGetByIdParams): Promise<APICustomerGetByIdResult | null>;
    customerUpdate(params: APICustomerGetByIdParams, body: APICustomerUpdateBody): Promise<APICustomerUpdateResult>;
    customerAddressCreate(params: APICustomerGetByIdParams, body: APICustomerAddressCreateBody): Promise<APICustomerAddressCreateResult>;
    customerAddressDelete(params: {
        customerId: string;
        addressId: string;
    }): Promise<void>;
    customerOrdersBrowse(params: APICustomerGetByIdParams, queryParams?: APICustomerOrdersBrowseQueryParams): Promise<APICustomerOrdersBrowseResult>;
    inventoryBrowse(params?: APIInventoryBrowseQueryParams): Promise<APIInventoryBrowseResult>;
    inventoryAdjust(sku: string, body: APIInventoryAdjustBody): Promise<APIInventoryAdjustResult>;
    variantGet(params: APIVariantGetByIdParams): Promise<APIVariantGetByIdResult | null>;
    variantUpdate(params: APIVariantGetByIdParams, body: APIVariantUpdateBody): Promise<APIVariantUpdateResult>;
    variantDelete(params: APIVariantGetByIdParams): Promise<void>;
    variantCreate(productId: string, body: APIVariantCreateBody): Promise<APIVariantCreateResult>;
    subscriberCreate(body: APISubscriberCreateBody): Promise<APISubscriberCreateResult>;
    subscriberDelete(email: string): Promise<APISubscriberDeleteResult>;
    contactMessageCreate(body: APIContactMessageCreateBody): Promise<APIContactMessageCreateResult>;
    productCreate(body: APIProductCreateBody): Promise<APIProductCreateResult>;
    productUpdate(params: APIProductGetByIdParams, body: APIProductUpdateBody): Promise<APIProductUpdateResult>;
    productDelete(params: APIProductGetByIdParams): Promise<APIProductDeleteResult>;
    productReviewsBrowse(params: APIProductGetByIdParams, queryParams?: APIProductReviewsBrowseQueryParams): Promise<APIProductReviewsBrowseResult>;
    productReviewCreate(params: APIProductGetByIdParams, body: APIProductReviewCreateBody): Promise<APIProductReviewCreateResult>;
    categoryCreate(body: APICategoryCreateBody): Promise<APICategoryCreateResult>;
    categoryUpdate(params: APICategoryGetByIdParams, body: APICategoryUpdateBody): Promise<APICategoryUpdateResult>;
    orderUpdate(params: APIOrderGetByIdParams, body: APIOrderUpdateBody): Promise<APIOrderUpdateResult>;
    legalPageBrowse(): Promise<APILegalPagesBrowseResult>;
    legalPageGet(path: string): Promise<APILegalPageGetByPathResult>;
    search(params: APISearchQueryParams): Promise<APISearchResult>;
    instaviewImagesBrowse(params: APIInstaviewImagesBrowseParams, queryParams?: APIInstaviewImagesBrowseQueryParams): Promise<APIInstaviewImagesBrowseResult>;
    /**
     * Make a raw API request to any endpoint.
     * Use this for new API features not yet supported by typed methods.
     *
     * @example
     * // GET request (default method)
     * const webhooks = await provider.request<Webhook[]>('/webhooks');
     *
     * // POST with typed body
     * const webhook = await provider.request<Webhook, CreateWebhookBody>('/webhooks', {
     *   method: 'POST',
     *   body: { url: 'https://...' }
     * });
     *
     * // GET with query parameters
     * const products = await provider.request<Product[]>('/products', {
     *   query: { limit: 10, category: 'shoes' }
     * });
     *
     * // Path parameters via template literals
     * const product = await provider.request<Product>(`/products/${id}`);
     */
    request<TResponse = unknown, TBody = unknown>(pathname: `/${string}`, options?: {
        method?: "GET" | "POST" | "PATCH" | "DELETE";
        body?: TBody;
        query?: Record<string, string | number | boolean>;
    }): Promise<TResponse>;
}

declare function Commerce(config?: CommerceConfig): YNSProvider;

export { APIBlogCategoriesBrowseQueryParams, APIBlogCategoriesBrowseResult, APIBlogCategoryGetByIdParams, APIBlogCategoryGetByIdResult, APICartCreateBody, APICartCreateResult, APICartGetResult, APICategoriesBrowseQueryParams, APICategoriesBrowseResult, APICategoryCreateBody, APICategoryCreateResult, APICategoryGetByIdParams, APICategoryGetByIdResult, APICategoryUpdateBody, APICategoryUpdateResult, APICollectionCreateBody, APICollectionCreateResult, APICollectionGetByIdParams, APICollectionGetByIdResult, type APICollectionImportMembershipsBody, type APICollectionImportMembershipsResult, APICollectionsBrowseQueryParams, APICollectionsBrowseResult, APIContactMessageCreateBody, APIContactMessageCreateResult, APICustomerAddressCreateBody, APICustomerAddressCreateResult, APICustomerGetByIdParams, APICustomerGetByIdResult, APICustomerOrdersBrowseQueryParams, APICustomerOrdersBrowseResult, APICustomerUpdateBody, APICustomerUpdateResult, APICustomersBrowseQueryParams, APICustomersBrowseResult, APIInstaviewImagesBrowseParams, APIInstaviewImagesBrowseQueryParams, APIInstaviewImagesBrowseResult, APIInventoryAdjustBody, APIInventoryAdjustResult, APIInventoryBrowseQueryParams, APIInventoryBrowseResult, APILegalPageGetByPathResult, APILegalPagesBrowseResult, APIMeGetResult, APIOrderGetByIdParams, APIOrderGetByIdResult, APIOrderUpdateBody, APIOrderUpdateResult, APIOrdersBrowseQueryParams, APIOrdersBrowseResult, APIPostCommentCreateBody, APIPostCommentCreateResult, APIPostCommentsBrowseQueryParams, APIPostCommentsBrowseResult, APIPostCreateBody, APIPostCreateResult, APIPostDeleteResult, APIPostGetByIdParams, APIPostGetByIdResult, APIPostUpdateBody, APIPostUpdateResult, APIPostsBrowseQueryParams, APIPostsBrowseResult, APIProductCreateBody, APIProductCreateResult, APIProductDeleteResult, APIProductGetByIdParams, APIProductGetByIdResult, APIProductReviewCreateBody, APIProductReviewCreateResult, APIProductReviewsBrowseQueryParams, APIProductReviewsBrowseResult, APIProductUpdateBody, APIProductUpdateResult, APIProductsBrowseQueryParams, APIProductsBrowseResult, APISearchQueryParams, APISearchResult, APISubscriberCreateBody, APISubscriberCreateResult, APISubscriberDeleteResult, APIVariantCreateBody, APIVariantCreateResult, APIVariantGetByIdParams, APIVariantGetByIdResult, APIVariantUpdateBody, APIVariantUpdateResult, Commerce, type CommerceConfig, YNSProvider };
