/**
 * Types for Repository Selection System
 */
import { z } from 'zod';
/**
 * Repository selection rule types
 */
export type SelectionType = 'all' | 'prefix' | 'owner' | 'keyword' | 'combined' | 'manual';
/**
 * Repository selection rule
 */
export interface RepositorySelectionRule {
    /** Selection type */
    type: SelectionType;
    /** Pattern for prefix/keyword matching */
    pattern?: string;
    /** Owner/org name */
    owner?: string;
    /** Exclusion patterns */
    excludePatterns?: string[];
}
/**
 * Repository metadata from GitHub API
 */
export interface RepositoryMetadata {
    /** Repository name */
    name: string;
    /** Full repository URL */
    url: string;
    /** Owner/organization */
    owner: string;
    /** Repository description */
    description: string;
    /** Primary language */
    language: string;
    /** Star count */
    stars: number;
    /** Last updated timestamp */
    lastUpdated: Date;
    /** Is private */
    private?: boolean;
    /** Default branch */
    defaultBranch?: string;
}
/**
 * Zod schemas
 */
export declare const RepositorySelectionRuleSchema: z.ZodObject<{
    type: z.ZodEnum<{
        manual: "manual";
        all: "all";
        owner: "owner";
        keyword: "keyword";
        prefix: "prefix";
        combined: "combined";
    }>;
    pattern: z.ZodOptional<z.ZodString>;
    owner: z.ZodOptional<z.ZodString>;
    excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const RepositoryMetadataSchema: z.ZodObject<{
    name: z.ZodString;
    url: z.ZodString;
    owner: z.ZodString;
    description: z.ZodString;
    language: z.ZodString;
    stars: z.ZodNumber;
    lastUpdated: z.ZodDate;
    private: z.ZodOptional<z.ZodBoolean>;
    defaultBranch: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
//# sourceMappingURL=types.d.ts.map