/**
 * local-server Storybook preview URL 계산을 담당한다.
 * 생성 직후 Storybook index 갱신이 늦을 수 있어, 새 story가 index에 나타날 때까지 짧게 대기한다.
 */
import type { StorybookIndex } from './paths';
export type LocalServerPreviewUrlResolution = {
    /**
     * Storybook base URL이다.
     */
    baseUrl: string;
    /**
     * Storybook에서 실제로 이동할 URL이다.
     */
    previewUrl: string;
    /**
     * Storybook index에서 찾은 story id다.
     */
    storyId: string;
    /**
     * 현재 output 디렉터리에 해당하는 story를 찾았는지 여부다.
     */
    storyFound: boolean;
};
/**
 * @description Storybook index에서 현재 output 디렉터리에 해당하는 대표 스토리 id를 고른다.
 * @param outputDirectory 생성 결과 디렉터리
 * @param index Storybook index.json 응답
 * @returns 스토리 id 또는 빈 문자열
 */
export declare function selectPreviewStoryId(outputDirectory: string, index: StorybookIndex): string;
/**
 * @description Storybook index에 생성된 output story가 반영될 때까지 대기한다.
 * @param outputDirectory 생성 결과 디렉터리
 * @param port Storybook 포트
 * @param options 테스트/튜닝용 요청 함수와 대기 옵션
 * @returns 스토리 id 또는 빈 문자열
 */
export declare function waitForPreviewStoryId(outputDirectory: string, port: number, options?: {
    intervalMs?: number;
    requestIndex?: (url: string) => Promise<StorybookIndex | undefined>;
    timeoutMs?: number;
}): Promise<string>;
/**
 * @description 실행 중인 Storybook에서 특정 output 디렉터리의 대표 스토리로 바로 이동하는 URL을 계산한다.
 * @param outputDirectory 생성 결과 디렉터리
 * @param port Storybook 포트
 * @param options 테스트/튜닝용 요청 함수와 대기 옵션
 * @returns Storybook 프리뷰 URL
 */
export declare function getLocalServerPreviewUrl(outputDirectory: string, port: number, options?: {
    intervalMs?: number;
    requestIndex?: (url: string) => Promise<StorybookIndex | undefined>;
    timeoutMs?: number;
}): Promise<string>;
/**
 * @description 실행 중인 Storybook에서 특정 output 디렉터리의 대표 스토리 URL과 매칭 여부를 계산한다.
 * @param outputDirectory 생성 결과 디렉터리
 * @param port Storybook 포트
 * @param options 테스트/튜닝용 요청 함수와 대기 옵션
 * @returns preview URL 계산 결과
 */
export declare function resolveLocalServerPreviewUrl(outputDirectory: string, port: number, options?: {
    intervalMs?: number;
    requestIndex?: (url: string) => Promise<StorybookIndex | undefined>;
    timeoutMs?: number;
}): Promise<LocalServerPreviewUrlResolution>;
//# sourceMappingURL=preview-url.d.ts.map